aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2015-04-07 22:07:41 +0200
committerMarcel Holtmann <marcel@holtmann.org>2015-04-09 16:58:30 +0200
commitc9ad1e8dfb3365b039ec8059a805b560447c36bc (patch)
tree8b7c592043fff0299fa245cd55ed744e5b49ce31
parent1ebd79c0ccba2a15429811fb7298262b0541446a (diff)
downloadneard-c9ad1e8dfb3365b039ec8059a805b560447c36bc.tar.gz
gdbus: Fix crash in g_dbus_create_error_valist
Passing NULL format parameter to vsnprintf results in invalid argument error on glibc. But with some other libc libraries (musl and uClibc) this results in dereferencing NULL pointer and crash due to segmentation fault.
-rw-r--r--gdbus/object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index 0f42dad..96db516 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1412,7 +1412,10 @@ DBusMessage *g_dbus_create_error_valist(DBusMessage *message, const char *name,
{
char str[1024];
- vsnprintf(str, sizeof(str), format, args);
+ if (format)
+ vsnprintf(str, sizeof(str), format, args);
+ else
+ str[0] = '\0';
return dbus_message_new_error(message, name, str);
}