On Mon, Sep 25, 2000 at 09:45:20AM +0200, Michael Schmitz wrote: > I have to correct myself here: the __va_copy(avlist, avlist1) is > utter BS. It expands to *avlist1 = *avlist and avlist1 is not > initialized -> null pointer dereferenced. > > Apply the following patch > > --- lib/libxview/attr/attr.c.org Sun Sep 24 22:22:04 2000 > +++ lib/libxview/attr/attr.c Sun Sep 24 22:21:34 2000 > @@ -93,7 +93,11 @@ > */ > #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) > __va_copy(valist, valist1); > +#if defined(__powerpc__) > + avlist = avlist1; > +#else > __va_copy(avlist, avlist1); > +#endif > #else > valist = valist1; > avlist = avlist1; > > and it just works (for me, YMMV, yadda). > > Sample packages in ftp.biophys.uni-duesseldorf.de:/pub/linux/powerpc/
Huh? Your mileage WILL vary. That defeats the entire point of using __va_copy(). avlist1 is, I assume, a va_list; a va_list is an array type, and so *avlist1 means avlist1[0], which does not dereference an uninitialized pointer. This patch is wrong. A FAQ on this sort of problem has been posted to debian-powerpc about a dozen times now, and also to debian-arm, IIRC. Dan /--------------------------------\ /--------------------------------\ | Daniel Jacobowitz |__| SCS Class of 2002 | | Debian GNU/Linux Developer __ Carnegie Mellon University | | [EMAIL PROTECTED] | | [EMAIL PROTECTED] | \--------------------------------/ \--------------------------------/

