chiark / gitweb /
bus: if we recieve fds but fd passing is off, consider this an error
authorLennart Poettering <lennart@poettering.net>
Sat, 30 Mar 2013 14:19:22 +0000 (15:19 +0100)
committerLennart Poettering <lennart@poettering.net>
Sat, 30 Mar 2013 14:21:55 +0000 (15:21 +0100)
src/libsystemd-bus/bus-socket.c

index 9512d2e..de823d5 100644 (file)
@@ -542,6 +542,15 @@ int bus_socket_read_message(sd_bus *bus, sd_bus_message **m) {
 
                         n = (cmsg->cmsg_len - CMSG_LEN(0)) / sizeof(int);
 
+                        if (!bus->can_fds) {
+                                /* Whut? We received fds but this
+                                 * isn't actually enabled? Close them,
+                                 * and fail */
+
+                                close_many((int*) CMSG_DATA(cmsg), n);
+                                return -EIO;
+                        }
+
                         f = realloc(bus->fds, sizeof(int) + (bus->n_fds + n));
                         if (!f) {
                                 close_many((int*) CMSG_DATA(cmsg), n);