Re: 5.1-RELEASE TODO

From: Terry Lambert <tlambert2_at_mindspring.com>
Date: Mon, 19 May 2003 23:44:31 -0700
Robert Watson wrote:
> On Mon, 19 May 2003, Terry Lambert wrote:
> > According to chapter 12 of the "Go Solo 2" book, this is a bogus thing
> > to do.  Callers are required to take a critical section over the calls
> > to the dl* functions because the dlerror() function uses a static buffer
> > that can be overwritten in a multi-threaded environment.
> 
> Sadly, that insight doesn't seem to have influenced the development
> practices of a number of major application vendors :-(.

Then I guess their software breaks on FreeBSD and several other
platforms.  Like Mozilla and Java break because they assume bad
things about the scheduler not being able to switch threads on
a priority basis following a return from an involuntary process
preemption...

If you're serious about making the FreeBSD implementation conform
to some defacto "standard" defined by how people misuse API's,
then it's probably about time that sockaddr_in didn't require its
"unused" fields to be zeroed, just like Linux and Solaris let you
leave crap in the "unused" portions of the structure.  That's the
main reason the SLPv2 reference implementation doesn't work on
FreeBSD (it was written by a Linux weenie who grabbed his
sockaddr_in on a stack variable, and failed to bzero it like
FreeBSD needs, before filling in the entries we supposedly care
about for the connect/bind calls).

Alternately, when we run into non-conforming applications, we
could send patches to the maintainers to make them conform,
instead of bending ourselves into some twisted image of Linux...

-- Terry
Received on Mon May 19 2003 - 21:45:47 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:08 UTC