summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2015-05-06 12:14:31 +0200
committerRalf Habacker <ralf.habacker@freenet.de>2015-05-06 12:14:31 +0200
commit5948bd13ed785882fbd856a63cab5571d6c9bbed (patch)
tree7fc4526220f71b50b18df885923fdb9da6652be6
parente0f9ced769d91071dbd8d96350e59cc19b54e802 (diff)
parent21a7873f20145d561c2de8f084d98200a8de2c83 (diff)
downloaddbus-5948bd13ed785882fbd856a63cab5571d6c9bbed.tar.gz
Merge remote-tracking branch 'origin/dbus-1.8'
-rw-r--r--dbus/dbus-marshal-recursive.c9
-rw-r--r--dbus/dbus-message.c5
-rw-r--r--dbus/dbus-nonce.c8
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;
}
}