PERFORCE change 67976 for review

David Xu davidxu at FreeBSD.org
Fri Dec 31 06:55:02 PST 2004


http://perforce.freebsd.org/chv.cgi?CH=67976

Change 67976 by davidxu at davidxu_tiger on 2004/12/31 14:54:57

	don't free cleanup  object  on stack.

Affected files ...

.. //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_clean.c#2 edit

Differences ...

==== //depot/projects/davidxu_thread/src/lib/libthread/thread/thr_clean.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libpthread/thread/thr_clean.c,v 1.8 2003/04/18 05:04:15 deischen Exp $
+ * $FreeBSD: src/lib/libpthread/thread/thr_clean.c,v 1.9 2004/12/18 18:07:37 deischen Exp $
  */
 #include <signal.h>
 #include <errno.h>
@@ -50,6 +50,7 @@
 	    malloc(sizeof(struct pthread_cleanup))) != NULL) {
 		new->routine = routine;
 		new->routine_arg = routine_arg;
+		new->onstack = 0;
 		new->next = curthread->cleanup;
 
 		curthread->cleanup = new;
@@ -67,6 +68,7 @@
 		if (execute) {
 			old->routine(old->routine_arg);
 		}
-		free(old);
+		if (old->onstack == 0)
+			free(old);
 	}
 }


More information about the p4-projects mailing list