diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2015-05-06 12:14:31 +0200 |
---|---|---|
committer | Ralf Habacker <ralf.habacker@freenet.de> | 2015-05-06 12:14:31 +0200 |
commit | 5948bd13ed785882fbd856a63cab5571d6c9bbed (patch) | |
tree | 7fc4526220f71b50b18df885923fdb9da6652be6 | |
parent | e0f9ced769d91071dbd8d96350e59cc19b54e802 (diff) | |
parent | 21a7873f20145d561c2de8f084d98200a8de2c83 (diff) | |
download | dbus-5948bd13ed785882fbd856a63cab5571d6c9bbed.tar.gz |
Merge remote-tracking branch 'origin/dbus-1.8'
-rw-r--r-- | dbus/dbus-marshal-recursive.c | 9 | ||||
-rw-r--r-- | dbus/dbus-message.c | 5 | ||||
-rw-r--r-- | dbus/dbus-nonce.c | 8 |
3 files changed, 16 insertions, 6 deletions
diff --git a/dbus/dbus-marshal-recursive.c b/dbus/dbus-marshal-recursive.c index 4adfd2e9..de997953 100644 --- a/dbus/dbus-marshal-recursive.c +++ b/dbus/dbus-marshal-recursive.c @@ -149,6 +149,7 @@ reader_init (DBusTypeReader *reader, const DBusString *value_str, int value_pos) { + _DBUS_ZERO (*reader); reader->byte_order = byte_order; reader->finished = FALSE; reader->type_str = type_str; @@ -736,11 +737,11 @@ _dbus_type_reader_init (DBusTypeReader *reader, const DBusString *value_str, int value_pos) { - reader->klass = &body_reader_class; - reader_init (reader, byte_order, type_str, type_pos, value_str, value_pos); + reader->klass = &body_reader_class; + #if RECURSIVE_MARSHAL_READ_TRACE _dbus_verbose (" type reader %p init type_pos = %d value_pos = %d remaining sig '%s'\n", reader, reader->type_pos, reader->value_pos, @@ -761,11 +762,11 @@ _dbus_type_reader_init_types_only (DBusTypeReader *reader, const DBusString *type_str, int type_pos) { - reader->klass = &body_types_only_reader_class; - reader_init (reader, DBUS_COMPILER_BYTE_ORDER /* irrelevant */, type_str, type_pos, NULL, _DBUS_INT_MAX /* crashes if we screw up */); + reader->klass = &body_types_only_reader_class; + #if RECURSIVE_MARSHAL_READ_TRACE _dbus_verbose (" type reader %p init types only type_pos = %d remaining sig '%s'\n", reader, reader->type_pos, diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 22da695b..d6fec0bd 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -4796,7 +4796,10 @@ dbus_message_demarshal (const char *str, return NULL; _dbus_message_loader_get_buffer (loader, &buffer); - _dbus_string_append_len (buffer, str, len); + + if (!_dbus_string_append_len (buffer, str, len)) + goto fail_oom; + _dbus_message_loader_return_buffer (loader, buffer); if (!_dbus_message_loader_queue_messages (loader)) diff --git a/dbus/dbus-nonce.c b/dbus/dbus-nonce.c index 44c46b2f..c46f15ac 100644 --- a/dbus/dbus-nonce.c +++ b/dbus/dbus-nonce.c @@ -78,7 +78,13 @@ do_check_nonce (int fd, const DBusString *nonce, DBusError *error) } else { - _dbus_string_append_len(&buffer, _dbus_string_get_const_data (&p), n); + if (!_dbus_string_append_len (&buffer, _dbus_string_get_const_data (&p), n)) + { + dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL); + _dbus_string_free (&p); + _dbus_string_free (&buffer); + return FALSE; + } nleft -= n; } } |