]> git.ipfire.org Git - pakfire.git/commitdiff
file: Check if we actually returned a file handle
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 29 Dec 2024 19:59:25 +0000 (19:59 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 29 Dec 2024 19:59:25 +0000 (19:59 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/file.c

index 390529f76f13d37bb73a5d73af32d9d9cefe1681..a86a91cedfe246c26c855492ab9269d3a8c3e3a7 100644 (file)
@@ -1108,6 +1108,7 @@ int pakfire_file_open(struct pakfire_file* file) {
 }
 
 FILE* pakfire_file_fopen(struct pakfire_file* file) {
+       FILE* f = NULL;
        int fd = -EBADF;
 
        // Open the file descriptor
@@ -1116,7 +1117,14 @@ FILE* pakfire_file_fopen(struct pakfire_file* file) {
                return NULL;
 
        // Return a file handle
-       return fdopen(fd, "r+");
+       f = fdopen(fd, "r");
+       if (!f) {
+               ERROR(file->ctx, "Could not open file handle for %s: %m\n",
+                       pakfire_file_get_path(file));
+               return NULL;
+       }
+
+       return f;
 }
 
 int pakfire_file_payload_matches(struct pakfire_file* file,