suggested bsd-setproctitle.c

David Terrell dbt at meat.net
Wed Nov 8 12:49:57 EST 2000


On Tue, Nov 07, 2000 at 05:16:22PM -0800, David Terrell wrote:
> On Mon, Nov 06, 2000 at 06:52:02AM +0100, Kevin Steves wrote:
> > That should work.  But it seems this __progname issue could be cleaned
> > up by defining the variable in main() files if needed:
> > 
> > #ifndef HAVE___PROGNAME
> > const char *__progname = "foo";
> > #endif
> > 
> > then declaring it (no ifdefs) if it's referenced:
> > 
> > extern const char *__progname;
> > 
> > This gets us closer to OpenBSD's tree with fewer ifdefs.
> > 
> > I'll do this patch unless someone points out what it will break :)
> 
> It breaks the actual functionality of __progname, which is roughly
> equivelent to basename(argv[0]).

To make a more useful suggestion:

#ifndef HAVE___PROGNAME
char *__progname;
#endif

then in main()
#ifndef HAVE___PROGNAME
	__progname = xstrdup(basename(argv[0]);
#endif

It's not a const, though.  Tread carefully.  Make sure not to pass
it to printf()-like functions as a format string, especially in
ssh, where it could be setuid.  etc.

Dave, who can write up a pretty patch if desired, I don't have the portable
      source tree around right now.

-- 
David Terrell   | "To increase the hype, I'm gonna release a bunch
Nebcorp PM      | of BLT variants (NetBLT, FreeBLT, BLT386, etc)
dbt at meat.net    | and create artificial rivalries."
wwn.nebcorp.com |  - Brian Sweltand (www.openblt.org)





More information about the openssh-unix-dev mailing list