Date: Tue, 20 Jun 2000 20:28:13 +0200 From: Phil Pennock <pdp@nl.demon.net> To: FreeBSD-gnats-submit@freebsd.org Subject: misc/19406: setenv() allocates memory which is not freed by unsetenv() Message-ID: <E134Skv-0008h2-00@samhain.noc.nl.demon.net>
index | next in thread | raw e-mail
>Number: 19406
>Category: misc
>Synopsis: setenv() allocates memory which is not freed by unsetenv()
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Jun 20 11:30:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator: Phil Pennock
>Release: FreeBSD 3.4-STABLE i386
>Organization:
n/a
>Environment:
Any
>Description:
setenv() allocates memory for variable. unsetenv() does not free that memory.
>How-To-Repeat:
Compile the code below, run, find pid and use "ps up <pid>" to see the RSS
grow without apparent bound.
#include <stdlib.h>
#include <unistd.h>
#define Name "testing"
#define Value "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
int
main (int argc, char *argv[])
{
int i;
while(1) {
for (i=0; i<1000; ++i) {
setenv(Name, Value, 1);
unsetenv(Name);
}
sleep(1);
}
return 0;
}
>Fix:
Anyone want to think how many old programs depend on some buggy aspect of the
memory allocation involved here?
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E134Skv-0008h2-00>
