mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
bus-message: do not crash on message with a string of zero length
We'd calculate the "real" length of the string as 'item_size - 1', which does not work out well when item_size == 0.
This commit is contained in:
parent
69bd42ca07
commit
81b6e63029
@ -3292,6 +3292,12 @@ _public_ int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p) {
|
||||
if (IN_SET(type, SD_BUS_TYPE_STRING, SD_BUS_TYPE_OBJECT_PATH, SD_BUS_TYPE_SIGNATURE)) {
|
||||
bool ok;
|
||||
|
||||
/* D-Bus spec: The marshalling formats for the string-like types all end
|
||||
* with a single zero (NUL) byte, but that byte is not considered to be part
|
||||
* of the text. */
|
||||
if (c->item_size == 0)
|
||||
return -EBADMSG;
|
||||
|
||||
r = message_peek_body(m, &rindex, 1, c->item_size, &q);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user