summaryrefslogtreecommitdiff
path: root/alarm-manager.c
diff options
context:
space:
mode:
authorJiwoong Im <jiwoong.im@samsung.com>2017-06-05 16:26:44 +0900
committerJiwoong Im <jiwoong.im@samsung.com>2017-06-08 17:02:02 +0900
commit4d6c86a0afb8270f5bfc85e0a5d74664e2fcaf14 (patch)
tree58c076e7c4d54e0882870aeb0be31e739e861576 /alarm-manager.c
parent110a542df2a44a30e4296ed13e3e0def1f3dd3c2 (diff)
downloadalarm-manager-4d6c86a0afb8270f5bfc85e0a5d74664e2fcaf14.tar.gz
alarm-manager-4d6c86a0afb8270f5bfc85e0a5d74664e2fcaf14.tar.bz2
alarm-manager-4d6c86a0afb8270f5bfc85e0a5d74664e2fcaf14.zip
Fix memory leak
- Fix memory leak of pkgmgrinfo handle and bundle Change-Id: I39cc31441d7d7dde9c0a51b49101ee205bd45114 Signed-off-by: Jiwoong Im <jiwoong.im@samsung.com>
Diffstat (limited to 'alarm-manager.c')
-rw-r--r--alarm-manager.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/alarm-manager.c b/alarm-manager.c
index 1114c17..a96d06c 100644
--- a/alarm-manager.c
+++ b/alarm-manager.c
@@ -513,19 +513,26 @@ static bool __check_bundle_for_update(const gchar *b_data, uid_t uid)
{
const char *callee_appid;
bundle *b;
+ bool ret = false;
if (strlen(b_data) == 4 && strncmp(b_data, "null", 4) == 0)
return true;
b = bundle_decode((bundle_raw *)b_data, strlen(b_data));
+ if (b == NULL)
+ return false;
+
callee_appid = appsvc_get_appid(b);
- if (callee_appid == NULL)
+ if (callee_appid == NULL) {
+ bundle_free(b);
return false;
+ }
if (__is_ui_app(callee_appid, uid))
- return true;
+ ret = true;
- return false;
+ bundle_free(b);
+ return ret;
}
static __alarm_info_t *__alarm_update_in_list(int uid, alarm_id_t alarm_id,
@@ -3661,7 +3668,7 @@ gboolean alarm_manager_alarm_set_global(AlarmManager *pObject, GDBusMethodInvoca
} else if (retval == PMINFO_R_OK && !is_global) {
return_code = ERR_ALARM_NOT_PERMITTED_APP;
}
-
+ pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
}
g_dbus_method_invocation_return_value(invoc, g_variant_new("(i)", return_code));
}