string-util: make strgrowpad0() a bit safer

Let#s make sure we never shorten the allocation leaving an invalid
string (i.e. a memory allocation without a trailing NUL) around.
This commit is contained in:
Lennart Poettering
2023-09-25 19:10:37 +02:00
parent b907b9075e
commit 8e47958423
+10 -1
View File
@@ -627,14 +627,23 @@ char* strshorten(char *s, size_t l) {
}
int strgrowpad0(char **s, size_t l) {
size_t sz;
assert(s);
if (*s) {
sz = strlen(*s) + 1;
if (sz >= l) /* never shrink */
return 0;
} else
sz = 0;
char *q = realloc(*s, l);
if (!q)
return -ENOMEM;
*s = q;
size_t sz = strlen(*s);
memzero(*s + sz, l - sz);
return 0;
}