]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Load empty filelists
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 May 2021 13:25:00 +0000 (13:25 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 25 May 2021 13:25:00 +0000 (13:25 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/filelist.c

index c85d0e71bbd427bcec5f702d7545a6e168a6b7d3..efe27729c7225f28499ac1e50a5b00d6a7784ad7 100644 (file)
@@ -1106,11 +1106,11 @@ static int pakfire_archive_load_filelist_legacy(PakfireArchive archive) {
 
        r = pakfire_filelist_create_from_file(&archive->filelist,
                archive->pakfire, data, archive->format);
-       if (r) {
-               ERROR(archive->pakfire, "Could not parse filelist\n");
-       }
+       if (r)
+               ERROR(archive->pakfire, "Could not parse filelist: %s\n", strerror(errno));
 
-       free(data);
+       if (data)
+               free(data);
 
        // Destroy the filelist on error
        if (r && archive->filelist) {
index 421e9a1982e4baf043334994668db6f85609945e..77b8a7a5bccebcaec8e1f282f6fabb314abb10b7 100644 (file)
@@ -266,15 +266,14 @@ static int pakfire_filelist_parse_line(PakfireFile* file, Pakfire pakfire,
 
 int pakfire_filelist_create_from_file(PakfireFilelist* list, Pakfire pakfire,
                char* data, unsigned int format) {
-       if (!data) {
-               errno = EINVAL;
-               return 1;
-       }
-
        int r = pakfire_filelist_create(list, pakfire);
        if (r)
                return r;
 
+       // Nothing to do, if input is empty
+       if (!data)
+               return 0;
+
        PakfireFile file = NULL;
        char* tok = NULL;