summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2004-02-06 15:15:44 +0000
committerdeischen <deischen@FreeBSD.org>2004-02-06 15:15:44 +0000
commiteb9a5c0d3ba782e0c2dc56430fe5e50152714a7a (patch)
treed4526b200c7125bd41fe442c355a75cf75878ef8 /lib
parentaa54574435177367c0773c96685cf2e019574b8e (diff)
downloadFreeBSD-src-eb9a5c0d3ba782e0c2dc56430fe5e50152714a7a.zip
FreeBSD-src-eb9a5c0d3ba782e0c2dc56430fe5e50152714a7a.tar.gz
Prevent memory leak on sem_destroy() by destroying the semaphore's
internal mutex and CV.
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/gen/sem.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libc/gen/sem.c b/lib/libc/gen/sem.c
index ec80bc3..64ba05b 100644
--- a/lib/libc/gen/sem.c
+++ b/lib/libc/gen/sem.c
@@ -182,8 +182,11 @@ __sem_destroy(sem_t *sem)
}
_pthread_mutex_unlock(&(*sem)->lock);
- if (retval == 0)
+ if (retval == 0) {
+ _pthread_mutex_destroy(&(*sem)->lock);
+ _pthread_cond_destroy(&(*sem)->gtzero);
sem_free(*sem);
+ }
return (retval);
}
OpenPOWER on IntegriCloud