kernel-image: make inspect_kernel() optionally take directory fd
This commit is contained in:
committed by
Daan De Meyer
parent
46b457e54b
commit
b98afb23bf
@@ -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;
|
||||
|
||||
|
||||
@@ -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, §ions, &scount);
|
||||
if (r < 0)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user