Re: src/lib __progname cleanup ; review please

Bruce Evans <[email protected]>
Newsgroups gmane.os.freebsd.devel.audit
Message-ID <[email protected]>
On Mon, 25 Mar 2002, Mark Murray wrote:

> > > -char			*__progname = empty;
> > > +const char		*__progname = empty;
> >
> > Why is the empty string spelled differently on i386's (aout case) only?
>
> I assume you mean "blank"? Changed to that.

No, I mean the empty string ("").

> > > -	char *s;
> > > +	const char *s;
> >
> > This change is missing in most places.
>
> Fixed.
>
> > You might fix the style bugs involving this line when changing it.
>
> If "style bugs" mean the declaration should be moved to the top
> of the function, then fixed.

No, I meant style bugs in plural.  There is at least one more (a larger
one): missing blank line after declarations.

> > > Index: libc/gen/err.c
> > > ===================================================================
> > > RCS file: /home/ncvs/src/lib/libc/gen/err.c,v
> > > retrieving revision 1.12
> > > diff -u -d -r1.12 err.c
> > > --- libc/gen/err.c	22 Mar 2002 21:52:05 -0000	1.12
> > > +++ libc/gen/err.c	24 Mar 2002 13:42:26 -0000
> > > ...
> > > @@ -110,7 +108,7 @@
> > >  {
> > >  	if (err_file == 0)
> > >  		err_set_file((FILE *)0);
> > > -	fprintf(err_file, "%s: ", __progname);
> > > +	fprintf(err_file, "%s: ", getprogname());
> >
> > A version of getprogname() that is not in the application namespace
> > should be used, since some members of the err() family are called
> > internally in libc.  Similarly elsewhere.  This is even more imporartant
> > in Standard functions like malloc() and getopt().
>
> I don't understand this.

Standard functions can't call ones in the application namespace because
the application migh have a function of that name.  getprogname() is in
the application namespace.  See my commits for namespace de-pollution of
some members of the err() family.

> > > -extern const char *__progname;
> > > +#include "../include/libc_private.h"
> >
> > Bogus path.  The path to libc_private.h is in CFLAGS, and every other
> > include of libc_private.h in libc/gen depends on this.  Similarly
> > elsewhere.
>
> Fixed. ("Elsewhere" == libc only, right?)

"Elsewhere" == in other parts of your patch.

Bruce


To Unsubscribe: send mail to [email protected]
with "unsubscribe freebsd-audit" in the body of the message
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.