From: Michael Tremer Date: Wed, 1 Jan 2025 17:14:54 +0000 (+0000) Subject: linter: Use the new ELF object X-Git-Tag: 0.9.30~605 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4b0df72783f467cce0cfebf8e46ede29a6be9f3f;p=pakfire.git linter: Use the new ELF object Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/linter-file.c b/src/libpakfire/linter-file.c index 1782c77b8..7c5af01ad 100644 --- a/src/libpakfire/linter-file.c +++ b/src/libpakfire/linter-file.c @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -43,6 +44,9 @@ struct pakfire_linter_file { // File struct pakfire_file* file; + // ELF Object + struct pakfire_elf* _elf; + // File Descriptor int fd; @@ -157,6 +161,20 @@ int pakfire_linter_file_create(struct pakfire_linter_file** lfile, goto ERROR; } + // Open an ELF object + r = pakfire_elf_open(&l->_elf, l->ctx, l->path, l->fd); + if (r < 0) { + switch (-r) { + // This does not seem to be an ELF file + case ENOTSUP: + break; + + // Something else happened + default: + goto ERROR; + } + } + // Initialize libelf r = pakfire_linter_file_open_elf(l); if (r < 0) { @@ -177,6 +195,9 @@ ERROR: static void pakfire_linter_file_free(struct pakfire_linter_file* lfile) { int r; + if (lfile->_elf) + pakfire_elf_unref(lfile->_elf); + if (lfile->elf) elf_end(lfile->elf);