network: refuse zero length dhcp user class

This commit is contained in:
Yu Watanabe
2021-01-13 00:00:56 +09:00
parent e4336c0a5d
commit b79951fa32
+5 -5
View File
@@ -533,6 +533,7 @@ int config_parse_dhcp_user_class(
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)
@@ -545,25 +546,24 @@ int config_parse_dhcp_user_class(
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;
}
}