From 3c0e63c10a63dc856e4c698c9e363f0ad7a223a9 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Fri, 30 Sep 2022 15:08:20 +0100 Subject: [PATCH] dbus-message: Report OOM as OOM, not InvalidArgs Resolves: https://gitlab.freedesktop.org/dbus/dbus/-/issues/420 Signed-off-by: Simon McVittie --- dbus/dbus-message.c | 3 +++ test/message.c | 9 --------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index 6f2a518d..b43d5f75 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -5201,6 +5201,9 @@ dbus_message_demarshal (const char *str, return msg; fail_corrupt: + if (loader->corruption_reason == DBUS_VALIDITY_UNKNOWN_OOM_ERROR) + goto fail_oom; + dbus_set_error (error, DBUS_ERROR_INVALID_ARGS, "Message is corrupted (%s)", _dbus_validity_to_error_message (loader->corruption_reason)); _dbus_message_loader_unref (loader); diff --git a/test/message.c b/test/message.c index 60ef113d..d2c9db2b 100644 --- a/test/message.c +++ b/test/message.c @@ -291,15 +291,6 @@ test_valid_message_blobs (void *message_name, goto out; } - /* TODO: Validity checking sometimes returns InvalidArgs for OOM */ - if (dbus_error_has_name (&e, DBUS_ERROR_INVALID_ARGS) && - !have_memory && - strstr (e.message, "Out of memory") != NULL) - { - g_test_message ("Out of memory (not a problem)"); - goto out; - } - g_test_message ("Parsing %s reported unexpected error %s: %s", path, e.name, e.message); g_test_fail ();