From: Michael Tremer Date: Mon, 30 Dec 2024 15:16:13 +0000 (+0000) Subject: file: Add option to pass flags to open() X-Git-Tag: 0.9.30~645 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc321284108af425d58e41a306934d713cbf0eaf;p=pakfire.git file: Add option to pass flags to open() Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/file.c b/src/libpakfire/file.c index a86a91ced..144c917d3 100644 --- a/src/libpakfire/file.c +++ b/src/libpakfire/file.c @@ -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; diff --git a/src/libpakfire/include/pakfire/file.h b/src/libpakfire/include/pakfire/file.h index 70f126654..3c2bb104e 100644 --- a/src/libpakfire/include/pakfire/file.h +++ b/src/libpakfire/include/pakfire/file.h @@ -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, diff --git a/src/libpakfire/stripper.c b/src/libpakfire/stripper.c index b2ff941b3..58abe1d3f 100644 --- a/src/libpakfire/stripper.c +++ b/src/libpakfire/stripper.c @@ -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;