fixed prevent:479388,479475 73/51373/2
authorJeesun Kim <iamjs.kim@samsung.com>
Wed, 16 Sep 2015 01:22:51 +0000 (10:22 +0900)
committerjeesun kim <iamjs.kim@samsung.com>
Tue, 10 Nov 2015 04:38:32 +0000 (20:38 -0800)
Change-Id: I033fb9e54e6eece0e040e3ee49c952846b40ab52

common/cal_vcalendar_parse.c
server/cal_server_contacts.c

index 67e35b4..a5041f5 100644 (file)
@@ -640,9 +640,9 @@ static void __decode_quoted_printable(char *p)
        DBG("After[%s]", p);
 }
 
-static void __decode_iso8859_1_to_utf8(char *p)
+static char* __decode_iso8859_1_to_utf8(char *p)
 {
-       RET_IF(NULL == p);
+       RETV_IF(NULL == p, NULL);
 
        char *src = NULL;
        char *dst = NULL;
@@ -650,14 +650,16 @@ static void __decode_iso8859_1_to_utf8(char *p)
        DBG("Before [%s]", p);
        int len = strlen(p);
        len *= 2;
-       p = realloc(p, len);
-       if (NULL == p) {
+
+       char *out_p = NULL;
+       out_p = realloc(p, len);
+       if (NULL == out_p) {
                ERR("realloc() Fail");
-               return;
+               return NULL;
        }
 
        /* check enough space */
-       for (src = dst = p; *src; src++, dst++) {
+       for (src = dst = out_p; *src; src++, dst++) {
                if (*src & 0x80) {
                        ++dst;
                }
@@ -672,7 +674,8 @@ static void __decode_iso8859_1_to_utf8(char *p)
                        *dst-- = *src--;
                }
        }
-       DBG("After [%s]", p);
+       DBG("After [%s]", out_p);
+       return out_p;
 }
 
 static char* __decode_charset(char *p)
@@ -748,7 +751,7 @@ static char* __decode_charset(char *p)
        case VCAL_CHARSET_UTF_8:
                break;
        case VCAL_CHARSET_ISO_8859_1:
-               __decode_iso8859_1_to_utf8(ret_str);
+               ret_str = __decode_iso8859_1_to_utf8(ret_str);
                break;
        }
 
index a086aa8..0505afe 100644 (file)
@@ -346,11 +346,13 @@ static void _cal_server_contacts_get_event_list(contacts_list_h contacts_list,
                        }
                        if (NULL == array) {
                                ERR("calloc() Fail");
+                               free(delete_array);
                                break;
                        }
                        memcpy(array +count, delete_array, delete_count *sizeof(int));
                        count += delete_count;
                }
+               free(delete_array);
        } while (CONTACTS_ERROR_NONE == contacts_list_next(contacts_list));
        *out_delete = array;
        *out_count = count;