diff options
author | deischen <deischen@FreeBSD.org> | 2004-02-06 15:15:44 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2004-02-06 15:15:44 +0000 |
commit | eb9a5c0d3ba782e0c2dc56430fe5e50152714a7a (patch) | |
tree | d4526b200c7125bd41fe442c355a75cf75878ef8 /lib | |
parent | aa54574435177367c0773c96685cf2e019574b8e (diff) | |
download | FreeBSD-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.c | 5 |
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); } |