remove resource leak according to prevent rules
authoryoonki.park <yoonki.park@samsung.com>
Wed, 10 Jul 2013 05:47:12 +0000 (14:47 +0900)
committeryoonki.park <yoonki.park@samsung.com>
Wed, 10 Jul 2013 05:47:12 +0000 (14:47 +0900)
Change-Id: I19fa7eec90d3ecbcb2fbcef7c8704ce2baabd296
Signed-off-by: yoonki.park <yoonki.park@samsung.com>
src/file_sync_service.c

index 85bb31c..1c953cd 100644 (file)
@@ -58,6 +58,7 @@ struct sync_permit_rule sdk_sync_permit_rule[] = {
 
 
 static void set_syncfile_smack_label(char *src) {
+    char *label_transmuted = NULL;
     char *label = NULL;
     char *src_chr = strrchr(src, '/');
     int pos = src_chr - src + 1;
@@ -71,11 +72,10 @@ static void set_syncfile_smack_label(char *src) {
     snprintf(dirname, pos, "%s", src);
 
     //D("src:[%s], dirname:[%s]\n", src, dirname);
-    int rc = smack_getlabel(dirname, &label, SMACK_LABEL_TRANSMUTE);
+    int rc = smack_getlabel(dirname, &label_transmuted, SMACK_LABEL_TRANSMUTE);
 
-    if (rc == 0 && label != NULL) {
-        if (!strcmp("TRUE", label)) {
-            free(label);
+    if (rc == 0 && label_transmuted != NULL) {
+        if (!strcmp("TRUE", label_transmuted)) {
             rc = smack_getlabel(dirname, &label, SMACK_LABEL_ACCESS);
             if (rc == 0 && label != NULL) {
                 if (smack_setlabel(src, label, SMACK_LABEL_ACCESS) == -1) {
@@ -84,8 +84,9 @@ static void set_syncfile_smack_label(char *src) {
                 free(label);
             }
         } else{
-            D("fail to set label, is it transmuted?:%s\n", label);
+            D("fail to set label, is it transmuted?:%s\n", label_transmuted);
         }
+        free(label_transmuted);
     } else {
         if (smack_setlabel(src, SMACK_SYNC_FILE_LABEL, SMACK_LABEL_ACCESS) == -1) {
             D("unable to set sync file smack label %s due to %s\n", SMACK_SYNC_FILE_LABEL, strerror(errno));