kernel-image: make inspect_kernel() optionally take directory fd

This commit is contained in:
Yu Watanabe
2023-04-09 07:10:20 +02:00
committed by Daan De Meyer
parent 46b457e54b
commit b98afb23bf
3 changed files with 11 additions and 5 deletions
+4 -2
View File
@@ -1,5 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <fcntl.h>
#include "alloc-util.h"
#include "bootctl-uki.h"
#include "kernel-image.h"
@@ -8,7 +10,7 @@ int verb_kernel_identify(int argc, char *argv[], void *userdata) {
KernelImageType t;
int r;
r = inspect_kernel(argv[1], &t, NULL, NULL, NULL);
r = inspect_kernel(AT_FDCWD, argv[1], &t, NULL, NULL, NULL);
if (r < 0)
return r;
@@ -21,7 +23,7 @@ int verb_kernel_inspect(int argc, char *argv[], void *userdata) {
KernelImageType t;
int r;
r = inspect_kernel(argv[1], &t, &cmdline, &uname, &pname);
r = inspect_kernel(AT_FDCWD, argv[1], &t, &cmdline, &uname, &pname);
if (r < 0)
return r;
+6 -3
View File
@@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "fd-util.h"
#include "fileio.h"
#include "env-file.h"
#include "kernel-image.h"
#include "os-util.h"
@@ -255,6 +256,7 @@ static int inspect_uki(
}
int inspect_kernel(
int dir_fd,
const char *filename,
KernelImageType *ret_type,
char **ret_cmdline,
@@ -267,11 +269,12 @@ int inspect_kernel(
KernelImageType t;
int r;
assert(dir_fd >= 0 || dir_fd == AT_FDCWD);
assert(filename);
f = fopen(filename, "re");
if (!f)
return log_error_errno(errno, "Failed to open kernel image file '%s': %m", filename);
r = xfopenat(dir_fd, filename, "re", 0, &f);
if (r < 0)
return log_error_errno(r, "Failed to open kernel image file '%s': %m", filename);
r = pe_sections(f, &sections, &scount);
if (r < 0)
+1
View File
@@ -16,6 +16,7 @@ typedef enum KernelImageType {
const char* kernel_image_type_to_string(KernelImageType t) _const_;
int inspect_kernel(
int dir_fd,
const char *filename,
KernelImageType *ret_type,
char **ret_cmdline,