mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 09:21:26 +03:00
Merge pull request #13043 from poettering/strip-tab-ansi-no-static-size
util-lib: [static] array argument sizes are apparently not OK for NUL…
This commit is contained in:
commit
94e016650d
@ -725,10 +725,17 @@ char *strreplace(const char *text, const char *old_string, const char *new_strin
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void advance_offsets(ssize_t diff, size_t offsets[static 2], size_t shift[static 2], size_t size) {
|
||||
static void advance_offsets(
|
||||
ssize_t diff,
|
||||
size_t offsets[2], /* note: we can't use [static 2] here, since this may be NULL */
|
||||
size_t shift[static 2],
|
||||
size_t size) {
|
||||
|
||||
if (!offsets)
|
||||
return;
|
||||
|
||||
assert(shift);
|
||||
|
||||
if ((size_t) diff < offsets[0])
|
||||
shift[0] += size;
|
||||
if ((size_t) diff < offsets[1])
|
||||
@ -844,8 +851,7 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz, size_t highlight[2]) {
|
||||
|
||||
fclose(f);
|
||||
|
||||
free(*ibuf);
|
||||
*ibuf = obuf;
|
||||
free_and_replace(*ibuf, obuf);
|
||||
|
||||
if (_isz)
|
||||
*_isz = osz;
|
||||
@ -855,7 +861,7 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz, size_t highlight[2]) {
|
||||
highlight[1] += shift[1];
|
||||
}
|
||||
|
||||
return obuf;
|
||||
return *ibuf;
|
||||
}
|
||||
|
||||
char *strextend_with_separator(char **x, const char *separator, ...) {
|
||||
|
@ -455,12 +455,13 @@ static int setup_input(
|
||||
const ExecContext *context,
|
||||
const ExecParameters *params,
|
||||
int socket_fd,
|
||||
int named_iofds[3]) {
|
||||
const int named_iofds[static 3]) {
|
||||
|
||||
ExecInput i;
|
||||
|
||||
assert(context);
|
||||
assert(params);
|
||||
assert(named_iofds);
|
||||
|
||||
if (params->stdin_fd >= 0) {
|
||||
if (dup2(params->stdin_fd, STDIN_FILENO) < 0)
|
||||
@ -570,7 +571,7 @@ static int setup_output(
|
||||
const ExecParameters *params,
|
||||
int fileno,
|
||||
int socket_fd,
|
||||
int named_iofds[3],
|
||||
const int named_iofds[static 3],
|
||||
const char *ident,
|
||||
uid_t uid,
|
||||
gid_t gid,
|
||||
@ -2721,9 +2722,7 @@ out:
|
||||
static void append_socket_pair(int *array, size_t *n, const int pair[static 2]) {
|
||||
assert(array);
|
||||
assert(n);
|
||||
|
||||
if (!pair)
|
||||
return;
|
||||
assert(pair);
|
||||
|
||||
if (pair[0] >= 0)
|
||||
array[(*n)++] = pair[0];
|
||||
@ -2914,7 +2913,7 @@ static int exec_child(
|
||||
ExecRuntime *runtime,
|
||||
DynamicCreds *dcreds,
|
||||
int socket_fd,
|
||||
int named_iofds[3],
|
||||
const int named_iofds[static 3],
|
||||
int *fds,
|
||||
size_t n_socket_fds,
|
||||
size_t n_storage_fds,
|
||||
@ -3782,7 +3781,7 @@ static int exec_child(
|
||||
}
|
||||
|
||||
static int exec_context_load_environment(const Unit *unit, const ExecContext *c, char ***l);
|
||||
static int exec_context_named_iofds(const ExecContext *c, const ExecParameters *p, int named_iofds[3]);
|
||||
static int exec_context_named_iofds(const ExecContext *c, const ExecParameters *p, int named_iofds[static 3]);
|
||||
|
||||
int exec_spawn(Unit *unit,
|
||||
ExecCommand *command,
|
||||
@ -4110,13 +4109,18 @@ const char* exec_context_fdname(const ExecContext *c, int fd_index) {
|
||||
}
|
||||
}
|
||||
|
||||
static int exec_context_named_iofds(const ExecContext *c, const ExecParameters *p, int named_iofds[static 3]) {
|
||||
static int exec_context_named_iofds(
|
||||
const ExecContext *c,
|
||||
const ExecParameters *p,
|
||||
int named_iofds[static 3]) {
|
||||
|
||||
size_t i, targets;
|
||||
const char* stdio_fdname[3];
|
||||
size_t n_fds;
|
||||
|
||||
assert(c);
|
||||
assert(p);
|
||||
assert(named_iofds);
|
||||
|
||||
targets = (c->std_input == EXEC_INPUT_NAMED_FD) +
|
||||
(c->std_output == EXEC_OUTPUT_NAMED_FD) +
|
||||
|
@ -1699,7 +1699,7 @@ int setup_tmp_dirs(const char *id, char **tmp_dir, char **var_tmp_dir) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int setup_netns(int netns_storage_socket[static 2]) {
|
||||
int setup_netns(const int netns_storage_socket[static 2]) {
|
||||
_cleanup_close_ int netns = -1;
|
||||
int r, q;
|
||||
|
||||
@ -1762,7 +1762,7 @@ fail:
|
||||
return r;
|
||||
}
|
||||
|
||||
int open_netns_path(int netns_storage_socket[static 2], const char *path) {
|
||||
int open_netns_path(const int netns_storage_socket[static 2], const char *path) {
|
||||
_cleanup_close_ int netns = -1;
|
||||
int q, r;
|
||||
|
||||
|
@ -94,8 +94,8 @@ int setup_tmp_dirs(
|
||||
char **tmp_dir,
|
||||
char **var_tmp_dir);
|
||||
|
||||
int setup_netns(int netns_storage_socket[static 2]);
|
||||
int open_netns_path(int netns_storage_socket[static 2], const char *path);
|
||||
int setup_netns(const int netns_storage_socket[static 2]);
|
||||
int open_netns_path(const int netns_storage_socket[static 2], const char *path);
|
||||
|
||||
const char* protect_home_to_string(ProtectHome p) _const_;
|
||||
ProtectHome protect_home_from_string(const char *s) _pure_;
|
||||
|
@ -899,6 +899,8 @@ static int wireguard_read_key_file(const char *filename, uint8_t dest[static WG_
|
||||
if (!filename)
|
||||
return 0;
|
||||
|
||||
assert(dest);
|
||||
|
||||
r = read_full_file_full(filename, READ_FULL_FILE_SECURE | READ_FULL_FILE_UNBASE64, &key, &key_len);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -660,6 +660,8 @@ int efi_set_boot_order(uint16_t *order, size_t n) {
|
||||
static int boot_id_hex(const char s[static 4]) {
|
||||
int id = 0, i;
|
||||
|
||||
assert(s);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
if (s[i] >= '0' && s[i] <= '9')
|
||||
id |= (s[i] - '0') << (3 - i) * 4;
|
||||
|
@ -652,6 +652,8 @@ int ethtool_set_glinksettings(
|
||||
struct ifreq ifr = {};
|
||||
int r;
|
||||
|
||||
assert(advertise);
|
||||
|
||||
if (autonegotiation != AUTONEG_DISABLE && memeqzero(advertise, sizeof(uint32_t) * N_ADVERTISE)) {
|
||||
log_info("ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.");
|
||||
return 0;
|
||||
|
@ -3021,6 +3021,8 @@ static enum action verb_to_action(const char *verb) {
|
||||
static const char** make_extra_args(const char *extra_args[static 4]) {
|
||||
size_t n = 0;
|
||||
|
||||
assert(extra_args);
|
||||
|
||||
if (arg_scope != UNIT_FILE_SYSTEM)
|
||||
extra_args[n++] = "--user";
|
||||
|
||||
|
@ -400,6 +400,9 @@ static int append_vendor_model(
|
||||
const struct scsi_id_device *dev_scsi,
|
||||
char buf[static VENDOR_LENGTH + MODEL_LENGTH]) {
|
||||
|
||||
assert(dev_scsi);
|
||||
assert(buf);
|
||||
|
||||
if (strnlen(dev_scsi->vendor, VENDOR_LENGTH) != VENDOR_LENGTH)
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: bad vendor string \"%s\"",
|
||||
|
@ -156,6 +156,7 @@ static int get_subst_type(const char **str, bool strict, FormatSubstitutionType
|
||||
assert(str);
|
||||
assert(*str);
|
||||
assert(ret_type);
|
||||
assert(ret_attr);
|
||||
|
||||
if (*p == '$') {
|
||||
p++;
|
||||
|
@ -1464,6 +1464,8 @@ static int attr_subst_subdir(char attr[static UTIL_PATH_SIZE]) {
|
||||
const char *tail;
|
||||
size_t len, size;
|
||||
|
||||
assert(attr);
|
||||
|
||||
tail = strstr(attr, "/*/");
|
||||
if (!tail)
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user