From 627cf6bca88c241d7e0d5563db46f87f64792653 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Thu, 29 Dec 2011 15:17:04 -0600 Subject: [PATCH] Fix delta parsing In commit 4c5e7af32f9, we changed this code to use the regex gathered substrings. However, we failed to correctly store the delta file name (leaking memory), as well as freeing the temporary string used to hold the file size string. Signed-off-by: Dan McGee --- lib/libalpm/delta.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/libalpm/delta.c b/lib/libalpm/delta.c index 1272558e..165cdef4 100644 --- a/lib/libalpm/delta.c +++ b/lib/libalpm/delta.c @@ -301,7 +301,7 @@ alpm_delta_t *_alpm_delta_parse(char *line) /* start at index 1 -- match 0 is the entire match */ len = pmatch[1].rm_eo - pmatch[1].rm_so; - STRNDUP(tmp, &line[pmatch[1].rm_so], len, return NULL); + STRNDUP(delta->delta, &line[pmatch[1].rm_so], len, return NULL); len = pmatch[2].rm_eo - pmatch[2].rm_so; STRNDUP(delta->delta_md5, &line[pmatch[2].rm_so], len, return NULL); @@ -309,6 +309,7 @@ alpm_delta_t *_alpm_delta_parse(char *line) len = pmatch[3].rm_eo - pmatch[3].rm_so; STRNDUP(tmp, &line[pmatch[3].rm_so], len, return NULL); delta->delta_size = _alpm_strtoofft(tmp); + free(tmp); len = pmatch[4].rm_eo - pmatch[4].rm_so; STRNDUP(delta->from, &line[pmatch[4].rm_so], len, return NULL);