]> git.ipfire.org Git - pakfire.git/commitdiff
file: Add option to pass flags to open()
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Dec 2024 15:16:13 +0000 (15:16 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 30 Dec 2024 15:16:13 +0000 (15:16 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/file.c
src/libpakfire/include/pakfire/file.h
src/libpakfire/stripper.c

index a86a91cedfe246c26c855492ab9269d3a8c3e3a7..144c917d3ef08d7a667ede504e22dfbc6de4e683 100644 (file)
@@ -1081,7 +1081,7 @@ static int pakfire_file_levels(struct pakfire_file* file) {
        return levels;
 }
 
-int pakfire_file_open(struct pakfire_file* file) {
+int pakfire_file_open(struct pakfire_file* file, int flags) {
        const char* path = NULL;
        int fd = -EBADF;
 
@@ -1098,7 +1098,7 @@ int pakfire_file_open(struct pakfire_file* file) {
        }
 
        // Open the file
-       fd = open(path, O_CLOEXEC);
+       fd = open(path, flags|O_CLOEXEC);
        if (fd < 0) {
                ERROR(file->ctx, "Could not open %s: %m\n", path);
                return -errno;
@@ -1112,7 +1112,7 @@ FILE* pakfire_file_fopen(struct pakfire_file* file) {
        int fd = -EBADF;
 
        // Open the file descriptor
-       fd = pakfire_file_open(file);
+       fd = pakfire_file_open(file, O_RDONLY);
        if (fd < 0)
                return NULL;
 
index 70f126654180b3ce225040eac686859ced49e64e..3c2bb104eecae9f2964bfdbeb8646d96d64c7481 100644 (file)
@@ -156,7 +156,7 @@ char* pakfire_file_dump(struct pakfire_file* file, int flags);
 
 const char* pakfire_file_get_abspath(struct pakfire_file* file);
 
-int pakfire_file_open(struct pakfire_file* file);
+int pakfire_file_open(struct pakfire_file* file, int flags);
 FILE* pakfire_file_fopen(struct pakfire_file* file);
 
 int pakfire_file_payload_matches(struct pakfire_file* file,
index b2ff941b368cdd90b457bf67cdabb2a894ac289d..58abe1d3f131370cd0143102aeddbd2de6fec5a8 100644 (file)
@@ -477,7 +477,7 @@ static int pakfire_stripper_strip(
        int r;
 
        // Open the file
-       fd = pakfire_file_open(file);
+       fd = pakfire_file_open(file, 0);
        if (fd < 0) {
                r = -errno;
                goto ERROR;