From 9367af8a295ed0a998bbfe780f96dd1bf101559d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 7 Nov 2023 18:19:25 +0100 Subject: [PATCH] util: add capsule-util.[ch] with helpers for capsules For now, there's only a routine for validating capsule names. More will be added later. --- src/shared/capsule-util.c | 17 +++++++++++++++++ src/shared/capsule-util.h | 4 ++++ src/shared/meson.build | 1 + 3 files changed, 22 insertions(+) create mode 100644 src/shared/capsule-util.c create mode 100644 src/shared/capsule-util.h diff --git a/src/shared/capsule-util.c b/src/shared/capsule-util.c new file mode 100644 index 0000000000..3689a78a8b --- /dev/null +++ b/src/shared/capsule-util.c @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "capsule-util.h" +#include "path-util.h" +#include "user-util.h" + +int capsule_name_is_valid(const char *name) { + + if (!filename_is_valid(name)) + return false; + + _cleanup_free_ char *prefixed = strjoin("c-", name); + if (!prefixed) + return -ENOMEM; + + return valid_user_group_name(prefixed, /* flags= */ 0); +} diff --git a/src/shared/capsule-util.h b/src/shared/capsule-util.h new file mode 100644 index 0000000000..437153be9e --- /dev/null +++ b/src/shared/capsule-util.h @@ -0,0 +1,4 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +#pragma once + +int capsule_name_is_valid(const char *name); diff --git a/src/shared/meson.build b/src/shared/meson.build index d540631f21..11f2b5ade9 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -140,6 +140,7 @@ shared_sources = files( 'pkcs11-util.c', 'plymouth-util.c', 'pretty-print.c', + 'capsule-util.c', 'ptyfwd.c', 'qrcode-util.c', 'quota-util.c', -- 2.25.1