summaryrefslogtreecommitdiff
path: root/src/libelogind/sd-bus/bus-signature.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libelogind/sd-bus/bus-signature.c')
-rw-r--r--src/libelogind/sd-bus/bus-signature.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/libelogind/sd-bus/bus-signature.c b/src/libelogind/sd-bus/bus-signature.c
index 18c91e870..1ca37cbb5 100644
--- a/src/libelogind/sd-bus/bus-signature.c
+++ b/src/libelogind/sd-bus/bus-signature.c
@@ -58,6 +58,12 @@ static int signature_element_length_internal(
p += t;
}
+ if (p - s < 2)
+ /* D-Bus spec: Empty structures are not allowed; there
+ * must be at least one type code between the parentheses.
+ */
+ return -EINVAL;
+
*l = p - s + 1;
return 0;
}