Date: Fri, 14 May 1999 14:22:27 -0700 (PDT) From: rse@engelschall.com To: freebsd-gnats-submit@freebsd.org Subject: i386/11713: memory leak and/or crash in uthread's destructor-calling function Message-ID: <19990514212227.65D4415095@hub.freebsd.org>
index | next in thread | raw e-mail
>Number: 11713
>Category: i386
>Synopsis: memory leak and/or crash in uthread's destructor-calling function
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri May 14 14:30:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator: Ralf S. Engelschall
>Release: 3.1
>Organization:
Cable & Wireless ECRC
>Environment:
FreeBSD en1.engelschall.com 3.1-RELEASE FreeBSD 3.1-RELEASE #4: Sun Feb 28 18:55:02 CET 1999 rse@en1.engelschall.com:/usr/src/sys/compile/EN1 i386
>Description:
The uthread constructor calling function _thread_cleanupspecific
in /usr/src/lib/libc_r/uthread/uthread_spec.c does
the final free too late. The override with NULL has
to occur after the free and not before.
>How-To-Repeat:
I've seen this by poking around in the sources
and not by using the stuff. But I guess a memory leak or
even a crash could occur because of the free(NULL)
when pthread_key_create() was used in an application.
>Fix:
--- uthread_spec.c.orig Fri May 14 23:14:53 1999
+++ uthread_spec.c Fri May 14 23:15:32 1999
@@ -124,8 +124,8 @@
}
}
}
- _thread_run->specific_data = NULL;
free(_thread_run->specific_data);
+ _thread_run->specific_data = NULL;
}
static inline const void **
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19990514212227.65D4415095>
