Fix the exception of preference_set_changed_cb function 35/193735/1
authorHwankyu Jhun <h.jhun@samsung.com>
Sun, 25 Nov 2018 23:50:25 +0000 (08:50 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Sun, 25 Nov 2018 23:52:38 +0000 (08:52 +0900)
If the internal function returns a negative error value,
the preference_set_changed_cb function also returns the negative error value.

Change-Id: I781f86d91aabb8812fd5b0a8feca86bce62bbb97
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
src/preference.c
src/preference_inoti.c

index b075dda0ed4987f1018024643f05ee0b7a84236f..46117d3171dd46ac901011c373ee4a3336c2dde1 100644 (file)
@@ -1464,8 +1464,9 @@ API int preference_set_changed_cb(const char *key, preference_changed_cb callbac
                return PREFERENCE_ERROR_IO_ERROR;
        }
 
-       if (_preference_kdb_add_notify(pKeyNode, callback, user_data)) {
-               if (errno == ENOENT) {
+       func_ret = _preference_kdb_add_notify(pKeyNode, callback, user_data);
+       if (func_ret != PREFERENCE_ERROR_NONE) {
+               if (func_ret == PREFERENCE_ERROR_NO_KEY) {
                        LOGE("NO_KEY(0x%08x) : fail to find given key(%s)", PREFERENCE_ERROR_NO_KEY, key);
                        _preference_keynode_free(pKeyNode);
                        return PREFERENCE_ERROR_NO_KEY;
index 92ad9fd305cf6d0905dd6a133fbdfe94d5c0c8d4..9e553edab0c0df720fd7a297acef4983110ff5ab 100644 (file)
@@ -288,7 +288,7 @@ int _preference_kdb_add_notify(keynode_t *keynode, preference_changed_cb cb, voi
        if (access(path, F_OK) != 0) {
                if (errno == ENOENT) {
                        ERR("_preference_kdb_add_notify : Key(%s) does not exist", keyname);
-                       return PREFERENCE_ERROR_IO_ERROR;
+                       return PREFERENCE_ERROR_NO_KEY;
                }
        }