From 4b79a9a04b5394a9b776480303be9cdaa098d2e1 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Mon, 13 Jun 2016 10:57:56 +0900 Subject: [PATCH] Fix null pointer dereference Change-Id: Ic88d998171a7403a2f507919a23b69002474d0b6 Signed-off-by: Sangyoon Jang --- src/common/shared_dirs.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/common/shared_dirs.cc b/src/common/shared_dirs.cc index 6c485e9..40f3676 100644 --- a/src/common/shared_dirs.cc +++ b/src/common/shared_dirs.cc @@ -286,18 +286,26 @@ bool RequestUserDirectoryOperation(const char* method, GDBusProxy* proxy = g_dbus_proxy_new_sync(con, G_DBUS_PROXY_FLAGS_NONE, nullptr, kDBusServiceName, kDBusObjectPath, kDBusInterfaceName, nullptr, &err); - if (!proxy || err) { - LOG(ERROR) << "Failed to get dbus proxy: " << err->message; - g_error_free(err); + if (!proxy) { + std::string err_msg; + if (err) { + err_msg = std::string(err->message); + g_error_free(err); + } + LOG(ERROR) << "Failed to get dbus proxy: " << err_msg; g_object_unref(con); return false; } GVariant* r = g_dbus_proxy_call_sync(proxy, method, g_variant_new("(s)", pkgid.c_str()), G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &err); - if (!r || err) { - LOG(ERROR) << "Failed to request: " << err->message; - g_error_free(err); + if (!r) { + std::string err_msg; + if (err) { + err_msg = std::string(err->message); + g_error_free(err); + } + LOG(ERROR) << "Failed to request: " << err_msg; g_object_unref(proxy); g_object_unref(con); return false; -- 2.7.4