From b48f71841712d1839f5e900f1ec0fdf5665354ba Mon Sep 17 00:00:00 2001 From: tuxce Date: Thu, 17 Mar 2011 10:51:44 -0500 Subject: Correctly parse %DELTAS% entries in sync DB We erroniously dropped the call to _alpm_delta_parse() when macro-izing, causing segfaults for repos that provide deltas. Addresses FS#23314. Signed-off-by: Dan McGee --- lib/libalpm/be_sync.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c index 6c0d2d67..ca76105f 100644 --- a/lib/libalpm/be_sync.c +++ b/lib/libalpm/be_sync.c @@ -429,7 +429,12 @@ static int sync_db_read(pmdb_t *db, struct archive *archive, } else if(strcmp(line, "%PROVIDES%") == 0) { READ_AND_STORE_ALL(pkg->provides); } else if(strcmp(line, "%DELTAS%") == 0) { - READ_AND_STORE_ALL(pkg->deltas); + /* Different than the rest because of the _alpm_delta_parse call. */ + while(1) { + READ_NEXT(line); + if(strlen(line) == 0) break; + pkg->deltas = alpm_list_add(pkg->deltas, _alpm_delta_parse(line)); + } } } } else if(strcmp(filename, "files") == 0) { -- cgit v1.2.3-70-g09d2