Commit 0574a55e authored by Alan Coopersmith's avatar Alan Coopersmith Committed by Ulrich Sibiller

Avoid memory leak/corruption if realloc fails in XlcDL.c:resolve_object()

Previously, if realloc failed to increase the size, we'd still record that we had allocated the larger size, but the pointer to it would be NULL, causing future calls to be broken, and the previous allocation to be lost/leaked. Signed-off-by: 's avatarAlan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: 's avatarMatthieu Herrb <matthieu.herrb@laas.fr> Backported-to-NX-by: 's avatarUlrich Sibiller <uli42@gmx.de>
parent a6d9409b
......@@ -207,12 +207,13 @@ resolve_object(char *path, const char *lc_name)
}
if (lc_count == lc_len) {
lc_len += OBJECT_INC_LEN;
xi18n_objects_list = (XI18NObjectsList)
Xrealloc(xi18n_objects_list,
sizeof(XI18NObjectsListRec) * lc_len);
if (!xi18n_objects_list)
int new_len = lc_len + OBJECT_INC_LEN;
XI18NObjectsListRec *tmp = Xrealloc(xi18n_objects_list,
sizeof(XI18NObjectsListRec) * new_len);
if (tmp == NULL)
goto done;
xi18n_objects_list = tmp;
lc_len = new_len;
}
n = parse_line(p, args, 6);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment