diff options
Diffstat (limited to 'src/badge_internal.c')
-rwxr-xr-x | src/badge_internal.c | 6 |
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); |