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:59:45 +0200
commit09cea336c3d6099cca155368b06bbb1b55796386 (patch)
tree83578abb650e7be43c3ebc560d04117588e02e3f
parentcb0284f031e4c9b436e1a7c2c8fc190d28aa797f (diff)
downloadmmsd-09cea336c3d6099cca155368b06bbb1b55796386.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);
}