summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2009-10-07 20:20:51 +0000
committerrwatson <rwatson@FreeBSD.org>2009-10-07 20:20:51 +0000
commit466473bd42ba80f3f034125e0ef293a188554e34 (patch)
tree3b198a14c8bbf3d806889bfa7f6f66dcc96e4223
parent34ccb44d0ed0e6c442dc7b882d20c137bcf2a306 (diff)
downloadFreeBSD-src-466473bd42ba80f3f034125e0ef293a188554e34.zip
FreeBSD-src-466473bd42ba80f3f034125e0ef293a188554e34.tar.gz
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
-rw-r--r--lib/libc/gen/errlst.c1
-rw-r--r--lib/libc/sys/intro.23
-rw-r--r--sys/sys/errno.h6
3 files changed, 9 insertions, 1 deletions
diff --git a/lib/libc/gen/errlst.c b/lib/libc/gen/errlst.c
index bc3e0c9..db6bfa2 100644
--- a/lib/libc/gen/errlst.c
+++ b/lib/libc/gen/errlst.c
@@ -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]);
diff --git a/lib/libc/sys/intro.2 b/lib/libc/sys/intro.2
index 1c01c39..b75e52c 100644
--- a/lib/libc/sys/intro.2
+++ b/lib/libc/sys/intro.2
@@ -456,6 +456,9 @@ The specified extended attribute does not exist.
.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
diff --git a/sys/sys/errno.h b/sys/sys/errno.h
index 77b5f67..1fceb00 100644
--- a/sys/sys/errno.h
+++ b/sys/sys/errno.h
@@ -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
OpenPOWER on IntegriCloud