svn commit: r197841 - in head: lib/libc/gen lib/libc/sys sys/sys

Robert Watson rwatson at FreeBSD.org
Wed Oct 7 20:20:52 UTC 2009


Author: rwatson
Date: Wed Oct  7 20:20:51 2009
New Revision: 197841
URL: http://svn.freebsd.org/changeset/base/197841

Log:
  Add a new errno, ENOTCAPABLE, to be returned when a process requests an
  operation on a file descriptor that is not authorized by the descriptor's
  capability flags.
  
  MFC after:	1 month
  Sponsored by:	Google

Modified:
  head/lib/libc/gen/errlst.c
  head/lib/libc/sys/intro.2
  head/sys/sys/errno.h

Modified: head/lib/libc/gen/errlst.c
==============================================================================
--- head/lib/libc/gen/errlst.c	Wed Oct  7 19:50:14 2009	(r197840)
+++ head/lib/libc/gen/errlst.c	Wed Oct  7 20:20:51 2009	(r197841)
@@ -150,5 +150,6 @@ const char *const sys_errlist[] = {
 	"Multihop attempted",			/* 90 - EMULTIHOP */
 	"Link has been severed",		/* 91 - ENOLINK */
 	"Protocol error",			/* 92 - EPROTO */
+	"Capabilities insufficient",		/* 93 - ENOTCAPABLE */
 };
 const int sys_nerr = sizeof(sys_errlist) / sizeof(sys_errlist[0]);

Modified: head/lib/libc/sys/intro.2
==============================================================================
--- head/lib/libc/sys/intro.2	Wed Oct  7 19:50:14 2009	(r197840)
+++ head/lib/libc/sys/intro.2	Wed Oct  7 20:20:51 2009	(r197841)
@@ -456,6 +456,9 @@ The specified extended attribute does no
 .It Er 88 EDOOFUS Em "Programming error" .
 A function or API is being abused in a way which could only be detected
 at run-time.
+.It Er 93 ENOTCAPABLE Em "Capabilities insufficient" .
+An operation on a capability file descriptor requires greater privilege than
+the capability allows.
 .El
 .Sh DEFINITIONS
 .Bl -tag -width Ds

Modified: head/sys/sys/errno.h
==============================================================================
--- head/sys/sys/errno.h	Wed Oct  7 19:50:14 2009	(r197840)
+++ head/sys/sys/errno.h	Wed Oct  7 20:20:51 2009	(r197841)
@@ -174,7 +174,11 @@ __END_DECLS
 #define	EPROTO		92		/* Protocol error */
 
 #ifndef _POSIX_SOURCE
-#define	ELAST		92		/* Must be equal largest errno */
+#define	ENOTCAPABLE	93		/* Capabilities insufficient */
+#endif /* _POSIX_SOURCE */
+
+#ifndef _POSIX_SOURCE
+#define	ELAST		93		/* Must be equal largest errno */
 #endif /* _POSIX_SOURCE */
 
 #ifdef _KERNEL


More information about the svn-src-all mailing list