summaryrefslogtreecommitdiffstats
path: root/contrib/sendmail/libsm/sem.c
diff options
context:
space:
mode:
authorgshapiro <gshapiro@FreeBSD.org>2006-03-22 16:40:03 +0000
committergshapiro <gshapiro@FreeBSD.org>2006-03-22 16:40:03 +0000
commit7ec7c93b1895442f91f42eb78a2c77ca31b7b8d8 (patch)
treef2f677119f6e5ae9bb59afb38a21beeb680e5dce /contrib/sendmail/libsm/sem.c
parente66460b8942afc349793d018627b403bbd4eaad0 (diff)
parentef9770707c0f88e94a0c4a409f8fb74cea250716 (diff)
downloadFreeBSD-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.c8
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;
}
/*
OpenPOWER on IntegriCloud