From 4d53c4745ed8f77e81247f2434409c2269d9be61 Mon Sep 17 00:00:00 2001 From: pfg Date: Thu, 5 Feb 2015 23:02:43 +0000 Subject: [PATCH] tdelete(3): don't delete the node we are about to return. CID: 272528 Obtained from: NetBSD (CVS rev. 1.4) MFC after: 2 weeks --- lib/libc/stdlib/tdelete.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libc/stdlib/tdelete.c b/lib/libc/stdlib/tdelete.c index c83afb8cf3f..a27802e84e8 100644 --- a/lib/libc/stdlib/tdelete.c +++ b/lib/libc/stdlib/tdelete.c @@ -65,7 +65,8 @@ tdelete(const void * __restrict vkey, void ** __restrict vrootp, q->rlink = (*rootp)->rlink; } } - free(*rootp); /* D4: Free node */ + if (p != *rootp) + free(*rootp); /* D4: Free node */ *rootp = q; /* link parent to new node */ return p; } -- 2.45.0