diff options
author | gshapiro <gshapiro@FreeBSD.org> | 2006-03-22 16:40:03 +0000 |
---|---|---|
committer | gshapiro <gshapiro@FreeBSD.org> | 2006-03-22 16:40:03 +0000 |
commit | 7ec7c93b1895442f91f42eb78a2c77ca31b7b8d8 (patch) | |
tree | f2f677119f6e5ae9bb59afb38a21beeb680e5dce /contrib/sendmail/libsm/sem.c | |
parent | e66460b8942afc349793d018627b403bbd4eaad0 (diff) | |
parent | ef9770707c0f88e94a0c4a409f8fb74cea250716 (diff) | |
download | FreeBSD-src-7ec7c93b1895442f91f42eb78a2c77ca31b7b8d8.zip FreeBSD-src-7ec7c93b1895442f91f42eb78a2c77ca31b7b8d8.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r157001,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/sendmail/libsm/sem.c')
-rw-r--r-- | contrib/sendmail/libsm/sem.c | 8 |
1 files changed, 5 insertions, 3 deletions
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/gen.h> -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 <stdlib.h> # include <unistd.h> # include <sm/sem.h> # include <sm/heap.h> +# include <errno.h> /* ** 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; } /* |