svn commit: r215310 - head/lib/libc/gen

Ed Schouten ed at FreeBSD.org
Sun Nov 14 18:42:39 UTC 2010


Author: ed
Date: Sun Nov 14 18:42:39 2010
New Revision: 215310
URL: http://svn.freebsd.org/changeset/base/215310

Log:
  Always set errno to a sane value when pututxline(3) fails.
  
  For example, it will now return ESRCH when trying to replace a
  nonexistent entry with DEAD_PROCESS.

Modified:
  head/lib/libc/gen/pututxline.c

Modified: head/lib/libc/gen/pututxline.c
==============================================================================
--- head/lib/libc/gen/pututxline.c	Sun Nov 14 18:24:12 2010	(r215309)
+++ head/lib/libc/gen/pututxline.c	Sun Nov 14 18:42:39 2010	(r215310)
@@ -31,6 +31,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/endian.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
+#include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <string.h>
@@ -53,6 +54,7 @@ futx_open(const char *file)
 	/* Safety check: never use broken files. */
 	if (_fstat(fd, &sb) != -1 && sb.st_size % sizeof(struct futx) != 0) {
 		_close(fd);
+		errno = EINVAL;
 		return (NULL);
 	}
 	
@@ -142,6 +144,7 @@ utx_active_remove(struct futx *fu)
 	}
 
 	fclose(fp);
+	errno = ESRCH;
 	return (1);
 }
 


More information about the svn-src-all mailing list