Fix a few bugs with memory management

This commit is contained in:
Pierre Pronchery 2017-12-09 01:01:57 +01:00
parent 3b0fe39b2a
commit c55d1ca96a

View File

@ -238,7 +238,7 @@ String const ** mimehandler_get_categories(MimeHandler * handler)
{ {
if(strlen(p) == 0) if(strlen(p) == 0)
continue; continue;
if((r = realloc(ret, sizeof(*ret) * (cnt + 1))) != NULL) if((r = realloc(ret, sizeof(*ret) * (cnt + 2))) != NULL)
{ {
ret = r; ret = r;
ret[cnt] = string_new(p); ret[cnt] = string_new(p);
@ -252,6 +252,7 @@ String const ** mimehandler_get_categories(MimeHandler * handler)
} }
cnt++; cnt++;
} }
string_delete(q);
if(ret != NULL) if(ret != NULL)
ret[cnt] = NULL; ret[cnt] = NULL;
handler->categories = ret; handler->categories = ret;
@ -380,7 +381,7 @@ String const ** mimehandler_get_types(MimeHandler * handler)
{ {
if(strlen(p) == 0) if(strlen(p) == 0)
continue; continue;
if((r = realloc(ret, sizeof(*ret) * (cnt + 1))) != NULL) if((r = realloc(ret, sizeof(*ret) * (cnt + 2))) != NULL)
{ {
ret = r; ret = r;
ret[cnt] = string_new(p); ret[cnt] = string_new(p);
@ -394,6 +395,7 @@ String const ** mimehandler_get_types(MimeHandler * handler)
} }
cnt++; cnt++;
} }
string_delete(q);
if(ret != NULL) if(ret != NULL)
ret[cnt] = NULL; ret[cnt] = NULL;
handler->types = ret; handler->types = ret;