From: ian Date: Wed, 19 May 1999 21:03:33 +0000 (+0000) Subject: setenv emulation using putenv works properly (previously you would get wrong environm... X-Git-Tag: debian_version_0_64~4 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=userv.git;a=commitdiff_plain;h=8b642fcea17dc9cafba71701aa3e6b4887d2664b;ds=inline setenv emulation using putenv works properly (previously you would get wrong environment variable settings). (Thanks to Ben Harris.) --- diff --git a/debian/changelog b/debian/changelog index 8f11832..e2f0b35 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +userv (0.63) unstable; urgency=low + + * setenv emulation using putenv works properly (previously you would get + wrong environment variable settings). (Thanks to Ben Harris.) + + -- + userv (0.62) unstable; urgency=low * New builtin service `help' lists builtin services. diff --git a/lib.c b/lib.c index bd40ee0..22c8cd1 100644 --- a/lib.c +++ b/lib.c @@ -116,14 +116,10 @@ void snytprintfcat(char *buffer, size_t size, const char *fmt, ...) { #ifndef HAVE_SETENV int setenv(const char *name, const char *value, int overwrite) { - static char *buffer= 0; - static int avail= 0; - - int r; + char *buffer= 0; assert(overwrite==1); - r= makeroom(&buffer,&avail,strlen(name)+strlen(value)+2); - if (r) { errno= EINVAL; return -1; } + buffer= xmalloc(strlen(name)+strlen(value)+2); sprintf(buffer,"%s=%s",name,value); return putenv(buffer);