for (const char *p = rvalue;;) {
_cleanup_free_ char *w = NULL;
+ size_t len;
r = extract_first_word(&p, &w, NULL, EXTRACT_CUNESCAPE|EXTRACT_UNQUOTE);
if (r == -ENOMEM)
if (r == 0)
return 0;
+ len = strlen(w);
if (ltype == AF_INET) {
- if (strlen(w) > UINT8_MAX) {
+ if (len > UINT8_MAX || len == 0) {
log_syntax(unit, LOG_WARNING, filename, line, 0,
"%s length is not in the range 1-255, ignoring.", w);
continue;
}
} else {
- if (strlen(w) > UINT16_MAX) {
+ if (len > UINT16_MAX || len == 0) {
log_syntax(unit, LOG_WARNING, filename, line, 0,
"%s length is not in the range 1-65535, ignoring.", w);
continue;
}
}
- r = strv_push(l, w);
+ r = strv_consume(l, TAKE_PTR(w));
if (r < 0)
return log_oom();
-
- w = NULL;
}
}