From 4d53c4745ed8f77e81247f2434409c2269d9be61 Mon Sep 17 00:00:00 2001 From: pfg Date: Thu, 5 Feb 2015 23:02:43 +0000 Subject: 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(-) (limited to 'lib/libc/stdlib/tdelete.c') diff --git a/lib/libc/stdlib/tdelete.c b/lib/libc/stdlib/tdelete.c index c83afb8..a27802e 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; } -- cgit v1.1