From: Srivardhan Hebbar Date: Thu, 22 Oct 2015 19:25:37 +0000 (-0700) Subject: eet: handling memory leak on realloc fail. X-Git-Tag: v1.16.0-beta3~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71e68dcca6518e313738d276d1ac88a71cb43098;p=platform%2Fupstream%2Fefl.git eet: handling memory leak on realloc fail. Summary: Signed-off-by: Srivardhan Hebbar Reviewers: cedric Differential Revision: https://phab.enlightenment.org/D3208 Signed-off-by: Cedric BAIL --- diff --git a/src/lib/eet/eet_data.c b/src/lib/eet/eet_data.c index f2ad492..a0c5864 100644 --- a/src/lib/eet/eet_data.c +++ b/src/lib/eet/eet_data.c @@ -2810,21 +2810,28 @@ _eet_data_dump_token_get(const char *src, int *len) { const char *p; - char *tok = NULL; + char *tok = NULL, *temp; int in_token = 0; int in_quote = 0; int in_escape = 0; int tlen = 0, tsize = 0; -#define TOK_ADD(x) \ - do { \ - tlen++; \ - if (tlen >= tsize) \ - { \ - tsize += 32; \ - tok = realloc(tok, tsize); \ - } \ - tok[tlen - 1] = x; \ +#define TOK_ADD(x) \ + do { \ + tlen++; \ + if (tlen >= tsize) \ + { \ + tsize += 32; \ + temp = tok; \ + tok = realloc(tok, tsize); \ + if (!tok) \ + { \ + tok = temp; \ + ERR("Realloc failed\n"); \ + goto realloc_error; \ + } \ + } \ + tok[tlen - 1] = x; \ } while (0) for (p = src; *len > 0; p++, (*len)--) @@ -2890,6 +2897,7 @@ _eet_data_dump_token_get(const char *src, return tok; } +realloc_error: free(tok); return NULL;