Prev: [BUG] Issue with libmilter/sm_gethost.c, subroutine freehostent()
Next: Stats comp.mail.sendmail (last 7 days)
From: Jose-Marcio Martins da Cruz on 6 Jun 2010 17:37 D. Stussy wrote: > I have found that ISC's libbind 6.0 does have this function, but for some > reason, this was not being detected and the dummy sub routine was being > compiled in regardless. Commenting out the stub for freehostent() locally > fixed the problem. Why are you using ISC's libbind ? Which OS ? > > The milter library of Sendmail needs to be fixed to detect the presence of > this (separately from getipnodeby*()) and conditionally compile around > this. The following commented assumption is WRONG: > > /* > ** Stub routine -- if they don't have getipnodeby*(), > ** they probably don't have the free routine either. > */ > > Conditionals: #endif /* NEEDSGETIPNODE && NETINET6 */ > > The conflict shows up in a failed compilation of milters, including > dkim-filter (where I saw the problem), and the older dk-filter, where the > linker complains about a redefintion of the size of the routine (5 bytes > vs. 271 on my system). Which error messages ? If you type "man getipnedebyname" or "man getipnodebyaddr", you'll see that getipnodebyX allocates some memory to return results (thread safe routine), so it needs some way to free the space allocated, it it will surely need free... But as long as you haven't posted error messages nor told which OS are you using, it's hard to say something. > > I have Sendmail version 8.14.4, compiled from the source. I have not > checked 8.14.5 alpha 0 for the problem. As noted by the conditionals, this > may only appear on IPv6 enabled systems.
From: D. Stussy on 6 Jun 2010 19:05 "Jose-Marcio Martins da Cruz" <Jose-Marcio.Martins(a)ensmp.fr> wrote in message news:4C0C14FE.7060801(a)ensmp.fr... > D. Stussy wrote: > > I have found that ISC's libbind 6.0 does have this function, but for some > > reason, this was not being detected and the dummy sub routine was being > > compiled in regardless. Commenting out the stub for freehostent() locally > > fixed the problem. > > Why are you using ISC's libbind ? Which OS ? Why does the use of ISC's libbind matter? All that need be known is that it is installed and provides the real routine which is being stubbed out in libmilter because sendmail is NOT detecting that there's a conflict in its configuration phase. The bug is for NOT DETECTING that the real routine is available and thus skipping the stub. The OS is Linux. > > The milter library of Sendmail needs to be fixed to detect the presence of > > this (separately from getipnodeby*()) and conditionally compile around > > this. The following commented assumption is WRONG: > > > > /* > > ** Stub routine -- if they don't have getipnodeby*(), > > ** they probably don't have the free routine either. > > */ > > > > Conditionals: #endif /* NEEDSGETIPNODE && NETINET6 */ > > > > The conflict shows up in a failed compilation of milters, including > > dkim-filter (where I saw the problem), and the older dk-filter, where the > > linker complains about a redefintion of the size of the routine (5 bytes > > vs. 271 on my system). > > Which error messages ? Multiply defined symbol, of course. Read what I said. > If you type "man getipnedebyname" or "man getipnodebyaddr", you'll see > that getipnodebyX allocates some memory to return results (thread safe > routine), so it needs some way to free the space allocated, it it will > surely need free... So what is your point? > But as long as you haven't posted error messages nor told which OS are > you using, it's hard to say something. I have laready told you what the error is: Sendmail is building its own [dummy-stub] version of a library function that already exists in another library due to a failure to detect the real routine. > > I have Sendmail version 8.14.4, compiled from the source. I have not > > checked 8.14.5 alpha 0 for the problem. As noted by the conditionals, this > > may only appear on IPv6 enabled systems.
From: Claus Aßmann on 6 Jun 2010 20:05 D. Stussy wrote: > it is installed and provides the real routine which is being stubbed out in > libmilter because sendmail is NOT detecting that there's a conflict in its > configuration phase. The bug is for NOT DETECTING that the real routine is Which "configuration phase" are you talking about? PS: I'm looking forward to seeing your patch. Thanks.
From: D. Stussy on 6 Jun 2010 21:50 "Claus A�mann" <ca+sendmail(-no-copies-please)@mine.informatik.uni-kiel.de> wrote in message news:huhd3n$hic$1(a)obelix.informatik.uni-kiel.de... > D. Stussy wrote: > > > it is installed and provides the real routine which is being stubbed out in > > libmilter because sendmail is NOT detecting that there's a conflict in its > > configuration phase. The bug is for NOT DETECTING that the real routine is > > Which "configuration phase" are you talking about? > > PS: I'm looking forward to seeing your patch. Thanks. Not as a diff, but simply the result of the change: // void // freehostent(h) // struct hostent *h; // { // /* // ** Stub routine -- if they don't have getipnodeby*(), // ** they probably don't have the free routine either. // */ // // return; // } #endif /* NEEDSGETIPNODE && NETINET6 */ As noted, commenting out the defective stub routine was sufficient to fix the problem.
From: Claus Aßmann on 6 Jun 2010 23:05 D. Stussy wrote: > "Claus A�mann" > > Which "configuration phase" are you talking about? Seems this question went unanswered. > > PS: I'm looking forward to seeing your patch. Thanks. > Not as a diff, but simply the result of the change: > // void > // freehostent(h) That will work well with a real C compiler and on systems that actually need freehostent(), which seems to be almost all.
|
Next
|
Last
Pages: 1 2 Prev: [BUG] Issue with libmilter/sm_gethost.c, subroutine freehostent() Next: Stats comp.mail.sendmail (last 7 days) |