1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

strv: Make sure strv_make_nulstr() always returns a valid nulstr

strv_make_nulstr() is documented to always return a valid nulstr,
but if the input is `NULL` we return a string terminated with only
a single NUL terminator, so let's fix that and always terminate the
resulting string with two NUL bytes.

(cherry picked from commit 5ea173a91b2093664a9ebb9add678edd6f5d1efd)
(cherry picked from commit 0916514b8c595e6133527a4386d9903f2c7559d7)
This commit is contained in:
Daan De Meyer 2022-11-11 11:26:54 +01:00 committed by Zbigniew Jędrzejewski-Szmek
parent fd5fe6d834
commit 8f13d34510

View File

@ -715,7 +715,7 @@ int strv_make_nulstr(char * const *l, char **ret, size_t *ret_size) {
}
if (!m) {
m = new0(char, 1);
m = new0(char, 2);
if (!m)
return -ENOMEM;
n = 1;
@ -724,11 +724,9 @@ int strv_make_nulstr(char * const *l, char **ret, size_t *ret_size) {
m[n] = '\0';
assert(n > 0);
*ret = m;
*ret = TAKE_PTR(m);
*ret_size = n - 1;
m = NULL;
return 0;
}