fixed memleak
[ppastats.git] / src / lp_ws.c
index 74bcde5..8df7153 100644 (file)
@@ -393,13 +393,16 @@ struct daily_download_total **get_daily_download_totals(const char *binary_url)
        key = get_ddts_list_cache_key(binary_url);
 
        content = fcache_get(key);
-       if (content)
+       if (content) {
                json = json_tokener_parse(content);
-       else
+               free(content);
+       } else {
                json = NULL;
+       }
 
        if (json) {
                cached_ddts = json_object_to_daily_download_totals(json);
+               json_object_put(json);
                last_t = ddts_get_last_date(cached_ddts);
        } else {
                last_t = 0;
@@ -426,7 +429,8 @@ struct daily_download_total **get_daily_download_totals(const char *binary_url)
        }
 
        free(key);
-       free(cached_ddts);
+       if (ddts != cached_ddts)
+               free(cached_ddts);
        free(retrieved_ddts);
 
        return ddts;