summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeungha Son <seungha.son@samsung.com>2017-08-03 15:44:18 +0900
committerSeungha Son <seungha.son@samsung.com>2017-08-03 15:46:58 +0900
commitaefca08c2befade03e8a3153ac54feff31cb9bf9 (patch)
tree4c2c2958e7177a3b8001c2099a4a098efd6405b5
parentd5152e977da003313797929f9bff37387d4251c8 (diff)
downloadbadge-aefca08c2befade03e8a3153ac54feff31cb9bf9.tar.gz
badge-aefca08c2befade03e8a3153ac54feff31cb9bf9.tar.bz2
badge-aefca08c2befade03e8a3153ac54feff31cb9bf9.zip
Fix memory leak
Signed-off-by: Seungha Son <seungha.son@samsung.com> Change-Id: I141702d292614441a9531274fe134a8db1cde4b5
-rwxr-xr-xsrc/badge_internal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/badge_internal.c b/src/badge_internal.c
index 40f6e93..21e9999 100755
--- a/src/badge_internal.c
+++ b/src/badge_internal.c
@@ -1529,8 +1529,10 @@ int badge_register_changed_cb_for_uid(badge_change_cb callback, void *data, uid_
ret = _badge_changed_monitor_init(uid);
if (ret == BADGE_ERROR_NONE) {
ret = badge_ipc_init_badge(uid);
- if (ret != BADGE_ERROR_NONE && ret != BADGE_ERROR_NOT_EXIST)
- return ret;
+ if (ret != BADGE_ERROR_NONE && ret != BADGE_ERROR_NOT_EXIST) {
+ badge_unregister_changed_cb_for_uid(callback, uid);
+ return BADGE_ERROR_IO_ERROR;
+ }
} else {
/* LCOV_EXCL_START */
ERR("badge_ipc_monitor_init err : %d", ret);