From owner-freebsd-bugs Tue Jun 20 11:30:12 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id EC1B037BDF0 for ; Tue, 20 Jun 2000 11:30:00 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id LAA89977; Tue, 20 Jun 2000 11:30:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from binnen.mail.nl.demon.net (binnen.mail.nl.demon.net [194.159.72.192]) by hub.freebsd.org (Postfix) with ESMTP id 8C74B37B829 for ; Tue, 20 Jun 2000 11:29:14 -0700 (PDT) (envelope-from pdp@nl.demon.net) Received: from samhain.noc.nl.demon.net ([194.159.72.214] ident=exim) by binnen.mail.nl.demon.net with esmtp (Exim 3.13 #1) id 134Skw-000CLP-00 for FreeBSD-gnats-submit@freebsd.org; Tue, 20 Jun 2000 20:28:14 +0200 Received: from pdp by samhain.noc.nl.demon.net with local id 134Skv-0008h2-00 for FreeBSD-gnats-submit@freebsd.org; Tue, 20 Jun 2000 20:28:13 +0200 Message-Id: Date: Tue, 20 Jun 2000 20:28:13 +0200 From: Phil Pennock To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: misc/19406: setenv() allocates memory which is not freed by unsetenv() Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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 " to see the RSS grow without apparent bound. #include #include #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