summaryrefslogtreecommitdiff
path: root/gdbus
diff options
context:
space:
mode:
authorSzymon Janc <szymon.janc@tieto.com>2015-04-07 22:07:41 +0200
committerSzymon Janc <szymon.janc@tieto.com>2015-04-09 16:35:20 +0200
commit464d45524bf6a34a574969a7b9dbae3137054d85 (patch)
tree7fba1bf490fef357208960d648e38ccfba018eda /gdbus
parentcba1ba28cec78b798d7918d6eb2a3ac6c9c93946 (diff)
downloadbluez-464d45524bf6a34a574969a7b9dbae3137054d85.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.
Diffstat (limited to 'gdbus')
-rw-r--r--gdbus/object.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index 0f42dadf3..96db51665 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);
}