From cff2ae0f7f9cef08f3821f38d61fae7092729694 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Thu, 9 Feb 2017 10:06:11 +0000 Subject: [PATCH] dbus-message-util: Add some missing OOM paths to an internal test Coverity ID: 54688 Signed-off-by: Philip Withnall https://bugs.freedesktop.org/show_bug.cgi?id=99724 --- dbus/dbus-message-util.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/dbus/dbus-message-util.c b/dbus/dbus-message-util.c index 7402061..9fa5a21 100644 --- a/dbus/dbus-message-util.c +++ b/dbus/dbus-message-util.c @@ -479,6 +479,8 @@ dbus_internal_do_not_use_try_message_data (const DBusString *data, /* Write the data one byte at a time */ loader = _dbus_message_loader_new (); + if (loader == NULL) + goto failed; /* check some trivial loader functions */ _dbus_message_loader_ref (loader); @@ -490,8 +492,9 @@ dbus_internal_do_not_use_try_message_data (const DBusString *data, DBusString *buffer; _dbus_message_loader_get_buffer (loader, &buffer, NULL, NULL); - _dbus_string_append_byte (buffer, - _dbus_string_get_byte (data, i)); + if (!_dbus_string_append_byte (buffer, + _dbus_string_get_byte (data, i))) + goto failed; _dbus_message_loader_return_buffer (loader, buffer); } @@ -504,13 +507,16 @@ dbus_internal_do_not_use_try_message_data (const DBusString *data, /* Write the data all at once */ loader = _dbus_message_loader_new (); + if (loader == NULL) + goto failed; { DBusString *buffer; _dbus_message_loader_get_buffer (loader, &buffer, NULL, NULL); - _dbus_string_copy (data, 0, buffer, - _dbus_string_get_length (buffer)); + if (!_dbus_string_copy (data, 0, buffer, + _dbus_string_get_length (buffer))) + goto failed; _dbus_message_loader_return_buffer (loader, buffer); } @@ -523,6 +529,8 @@ dbus_internal_do_not_use_try_message_data (const DBusString *data, /* Write the data 2 bytes at a time */ loader = _dbus_message_loader_new (); + if (loader == NULL) + goto failed; len = _dbus_string_get_length (data); for (i = 0; i < len; i += 2) @@ -530,11 +538,17 @@ dbus_internal_do_not_use_try_message_data (const DBusString *data, DBusString *buffer; _dbus_message_loader_get_buffer (loader, &buffer, NULL, NULL); - _dbus_string_append_byte (buffer, - _dbus_string_get_byte (data, i)); + if (!_dbus_string_append_byte (buffer, + _dbus_string_get_byte (data, i))) + goto failed; + if ((i+1) < len) - _dbus_string_append_byte (buffer, - _dbus_string_get_byte (data, i+1)); + { + if (!_dbus_string_append_byte (buffer, + _dbus_string_get_byte (data, i+1))) + goto failed; + } + _dbus_message_loader_return_buffer (loader, buffer); } -- 2.9.3