mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
We usually call specifier_printf() and then check the validity of the result. In many cases, validity checkers, e.g. path_is_valid(), refuse too long strings. This makes specifier_printf() refuse such long results earlier. Moreover, unit_full_string() and description field in sysuser now refuse results longer than LONG_LINE_MAX. config_parse() already refuses the line longer than LONG_LINE_MAX. Hence, it should be ok to set the same value as the maximum length of the resolved string.
27 lines
1.1 KiB
C
27 lines
1.1 KiB
C
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
#pragma once
|
|
|
|
#include "creds-util.h"
|
|
#include "env-util.h"
|
|
#include "fd-util.h"
|
|
#include "fileio.h"
|
|
#include "unit.h"
|
|
|
|
int unit_name_printf(const Unit *u, const char* text, char **ret);
|
|
int unit_full_printf_full(const Unit *u, const char *text, size_t max_length, char **ret);
|
|
static inline int unit_full_printf(const Unit *u, const char *text, char **ret) {
|
|
return unit_full_printf_full(u, text, LONG_LINE_MAX, ret);
|
|
}
|
|
static inline int unit_path_printf(const Unit *u, const char *text, char **ret) {
|
|
return unit_full_printf_full(u, text, PATH_MAX-1, ret);
|
|
}
|
|
static inline int unit_fd_printf(const Unit *u, const char *text, char **ret) {
|
|
return unit_full_printf_full(u, text, FDNAME_MAX, ret);
|
|
}
|
|
static inline int unit_cred_printf(const Unit *u, const char *text, char **ret) {
|
|
return unit_full_printf_full(u, text, CREDENTIAL_NAME_MAX, ret);
|
|
}
|
|
static inline int unit_env_printf(const Unit *u, const char *text, char **ret) {
|
|
return unit_full_printf_full(u, text, sc_arg_max(), ret);
|
|
}
|