From ef9770707c0f88e94a0c4a409f8fb74cea250716 Mon Sep 17 00:00:00 2001 From: gshapiro Date: Wed, 22 Mar 2006 16:40:03 +0000 Subject: Import sendmail 8.13.6 Security: FreeBSD-SA-06:13.sendmail --- contrib/sendmail/libsm/sem.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'contrib/sendmail/libsm/sem.c') diff --git a/contrib/sendmail/libsm/sem.c b/contrib/sendmail/libsm/sem.c index a429cf4..89394cb 100644 --- a/contrib/sendmail/libsm/sem.c +++ b/contrib/sendmail/libsm/sem.c @@ -8,13 +8,14 @@ */ #include -SM_RCSID("@(#)$Id: sem.c,v 1.12 2005/03/25 21:27:02 ca Exp $") +SM_RCSID("@(#)$Id: sem.c,v 1.13 2005/08/12 20:39:59 ca Exp $") #if SM_CONF_SEM # include # include # include # include +# include /* ** SM_SEM_START -- initialize semaphores @@ -37,7 +38,7 @@ sm_sem_start(key, nsem, semflg, owner) int semflg; bool owner; { - int semid, i; + int semid, i, err; unsigned short *semvals; semvals = NULL; @@ -67,11 +68,12 @@ sm_sem_start(key, nsem, semflg, owner) return semid; error: + err = errno; if (semvals != NULL) sm_free(semvals); if (semid >= 0) sm_sem_stop(semid); - return -1; + return (err > 0) ? (0 - err) : -1; } /* -- cgit v1.1