svn commit: r202557 - head/lib/libc/gen
David Xu
davidxu at FreeBSD.org
Mon Jan 18 10:29:05 UTC 2010
Author: davidxu
Date: Mon Jan 18 10:29:04 2010
New Revision: 202557
URL: http://svn.freebsd.org/changeset/base/202557
Log:
preserve errno when processing error cases.
Modified:
head/lib/libc/gen/sem_new.c
Modified: head/lib/libc/gen/sem_new.c
==============================================================================
--- head/lib/libc/gen/sem_new.c Mon Jan 18 10:17:51 2010 (r202556)
+++ head/lib/libc/gen/sem_new.c Mon Jan 18 10:29:04 2010 (r202557)
@@ -142,7 +142,7 @@ _sem_open(const char *name, int flags, .
va_list ap;
struct sem_nameinfo *ni = NULL;
sem_t *sem = NULL;
- int fd = -1, mode, len;
+ int fd = -1, mode, len, errsave;
int value = 0;
if (name[0] != '/') {
@@ -233,12 +233,14 @@ _sem_open(const char *name, int flags, .
return (sem);
error:
+ errsave = errno;
_pthread_mutex_unlock(&sem_llock);
if (fd != -1)
_close(fd);
if (sem != NULL)
munmap(sem, sizeof(sem_t));
free(ni);
+ errno = errsave;
return (SEM_FAILED);
}
More information about the svn-src-head
mailing list