chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus: make sure we check for "incompatible" flags negotiated with kernel kdbus
[elogind.git]
/
src
/
libsystemd-bus
/
bus-kernel.c
diff --git
a/src/libsystemd-bus/bus-kernel.c
b/src/libsystemd-bus/bus-kernel.c
index 98fc27cda51445385b51384d596f6a7bca1e01f3..fb852bd730a41b44016f623a84f265cee57cec79 100644
(file)
--- a/
src/libsystemd-bus/bus-kernel.c
+++ b/
src/libsystemd-bus/bus-kernel.c
@@
-1074,6
+1074,13
@@
int bus_kernel_create_bus(const char *name, char **s) {
return -errno;
}
return -errno;
}
+ /* The higher 32bit of the flags field are considered
+ * 'incompatible flags'. Refuse them all for now. */
+ if (make->flags > 0xFFFFFFFFULL) {
+ close_nointr_nofail(fd);
+ return -ENOTSUP;
+ }
+
if (s) {
char *p;
if (s) {
char *p;
@@
-1118,6
+1125,13
@@
int bus_kernel_create_namespace(const char *name, char **s) {
return -errno;
}
return -errno;
}
+ /* The higher 32bit of the flags field are considered
+ * 'incompatible flags'. Refuse them all for now. */
+ if (make->flags > 0xFFFFFFFFULL) {
+ close_nointr_nofail(fd);
+ return -ENOTSUP;
+ }
+
if (s) {
char *p;
if (s) {
char *p;