aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2024-02-12 17:23:11 +0000
committerLucas De Marchi <lucas.de.marchi@gmail.com>2024-04-30 15:33:55 -0500
commit61bf8e74b9e0ad143f34d2e351cfe3491912da88 (patch)
treecdff49d6ebddaf9ae2d7532d9eb9e4c40e074752
parent737744301a992ed55801acb725995746bdad62a1 (diff)
downloadkmod-61bf8e74b9e0ad143f34d2e351cfe3491912da88.tar.gz
libkmod: tidy-up kmod_file_open()
This commit cleans up the indentation and the error path of the function. It bears no functional changes. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> [ Move assert to avoid warning with -Wdeclaration-after-statement ] Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com> Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
-rw-r--r--libkmod/libkmod-file.c63
1 files changed, 27 insertions, 36 deletions
diff --git a/libkmod/libkmod-file.c b/libkmod/libkmod-file.c
index 5b88d6c..20f9d62 100644
--- a/libkmod/libkmod-file.c
+++ b/libkmod/libkmod-file.c
@@ -408,43 +408,43 @@ struct kmod_elf *kmod_file_get_elf(struct kmod_file *file)
struct kmod_file *kmod_file_open(const struct kmod_ctx *ctx,
const char *filename)
{
- struct kmod_file *file = calloc(1, sizeof(struct kmod_file));
+ struct kmod_file *file;
const struct comp_type *itr;
- int err = 0;
+ char buf[7];
+ ssize_t sz;
+
+ assert_cc(sizeof(magic_zstd) < sizeof(buf));
+ assert_cc(sizeof(magic_xz) < sizeof(buf));
+ assert_cc(sizeof(magic_zlib) < sizeof(buf));
+ file = calloc(1, sizeof(struct kmod_file));
if (file == NULL)
return NULL;
file->fd = open(filename, O_RDONLY|O_CLOEXEC);
if (file->fd < 0) {
- err = -errno;
- goto error;
+ free(file);
+ return NULL;
}
- {
- char buf[7];
- ssize_t sz;
-
- assert_cc(sizeof(magic_zstd) < sizeof(buf));
- assert_cc(sizeof(magic_xz) < sizeof(buf));
- assert_cc(sizeof(magic_zlib) < sizeof(buf));
-
- sz = read_str_safe(file->fd, buf, sizeof(buf));
- lseek(file->fd, 0, SEEK_SET);
- if (sz != (sizeof(buf) - 1)) {
- if (sz < 0)
- err = sz;
- else
- err = -EINVAL;
- goto error;
- }
+ sz = read_str_safe(file->fd, buf, sizeof(buf));
+ lseek(file->fd, 0, SEEK_SET);
+ if (sz != (sizeof(buf) - 1)) {
+ if (sz < 0)
+ errno = -sz;
+ else
+ errno = EINVAL;
- for (itr = comp_types; itr->load != NULL; itr++) {
- if (memcmp(buf, itr->magic_bytes, itr->magic_size) == 0) {
- file->load = itr->load;
- file->compression = itr->compression;
- break;
- }
+ close(file->fd);
+ free(file);
+ return NULL;
+ }
+
+ for (itr = comp_types; itr->load != NULL; itr++) {
+ if (memcmp(buf, itr->magic_bytes, itr->magic_size) == 0) {
+ file->load = itr->load;
+ file->compression = itr->compression;
+ break;
}
}
@@ -455,15 +455,6 @@ struct kmod_file *kmod_file_open(const struct kmod_ctx *ctx,
file->ctx = ctx;
-error:
- if (err < 0) {
- if (file->fd >= 0)
- close(file->fd);
- free(file);
- errno = -err;
- return NULL;
- }
-
return file;
}