From: Lennart Poettering Date: Mon, 2 Dec 2013 22:31:41 +0000 (+0100) Subject: bus: make sure we check for "incompatible" flags negotiated with kernel kdbus X-Git-Tag: v209~1152 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=f9638db8de2f915a5c5f6e4b7292494168eb4141 bus: make sure we check for "incompatible" flags negotiated with kernel kdbus --- diff --git a/src/libsystemd-bus/bus-kernel.c b/src/libsystemd-bus/bus-kernel.c index 98fc27cda..fb852bd73 100644 --- 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; } + /* 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; @@ -1118,6 +1125,13 @@ int bus_kernel_create_namespace(const char *name, char **s) { 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;