diff options
author | Simon McVittie <smcv@collabora.com> | 2017-11-27 19:13:25 +0000 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2017-12-04 11:52:07 +0000 |
commit | ecbcffae19ff1b811fc7d0d602458c0f00dd6771 (patch) | |
tree | 2b08499647ff8e7c494a11893cf8fb105cfb8430 | |
parent | 7fe435b5c23001eb0ac19c7ce5ebce7ba1874fda (diff) |
dbus_message_demarshal: Set error if we can't allocate the loader
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100317
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Signed-off-by: Simon McVittie <smcv@collabora.com>
-rw-r--r-- | dbus/dbus-message.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 0d985a827..66a397478 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -5086,7 +5086,7 @@ dbus_message_demarshal (const char *str, int len, DBusError *error) { - DBusMessageLoader *loader; + DBusMessageLoader *loader = NULL; DBusString *buffer; DBusMessage *msg; @@ -5095,7 +5095,7 @@ dbus_message_demarshal (const char *str, loader = _dbus_message_loader_new (); if (loader == NULL) - return NULL; + goto fail_oom; _dbus_message_loader_get_buffer (loader, &buffer, NULL, NULL); @@ -5126,7 +5126,10 @@ dbus_message_demarshal (const char *str, fail_oom: _DBUS_SET_OOM (error); - _dbus_message_loader_unref (loader); + + if (loader != NULL) + _dbus_message_loader_unref (loader); + return NULL; } |