bus: if we hit the end of an array container return 0 as EOF indicator when reading it
This commit is contained in:
@@ -2659,6 +2659,9 @@ int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p) {
|
||||
if (!c->signature || c->signature[c->index] == 0)
|
||||
return 0;
|
||||
|
||||
if (message_end_of_array(m, m->rindex))
|
||||
return 0;
|
||||
|
||||
if (c->signature[c->index] != type)
|
||||
return -ENXIO;
|
||||
|
||||
@@ -3007,6 +3010,9 @@ int sd_bus_message_enter_container(sd_bus_message *m, char type, const char *con
|
||||
if (!c->signature || c->signature[c->index] == 0)
|
||||
return 0;
|
||||
|
||||
if (message_end_of_array(m, m->rindex))
|
||||
return 0;
|
||||
|
||||
signature = strdup(contents);
|
||||
if (!signature)
|
||||
return -ENOMEM;
|
||||
|
||||
Reference in New Issue
Block a user