mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-08 21:17:47 +03:00
Merge pull request #5464 from ssahani/label
socket-util: introduce address_label_valid
This commit is contained in:
commit
579a121f0e
@ -900,6 +900,26 @@ bool ifname_valid(const char *p) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool address_label_valid(const char *p) {
|
||||||
|
|
||||||
|
if (isempty(p))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (strlen(p) >= IFNAMSIZ)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
while (*p) {
|
||||||
|
if ((uint8_t) *p >= 127U)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ((uint8_t) *p <= 31U)
|
||||||
|
return false;
|
||||||
|
p++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
int getpeercred(int fd, struct ucred *ucred) {
|
int getpeercred(int fd, struct ucred *ucred) {
|
||||||
socklen_t n = sizeof(struct ucred);
|
socklen_t n = sizeof(struct ucred);
|
||||||
struct ucred u;
|
struct ucred u;
|
||||||
|
@ -126,6 +126,7 @@ int ip_tos_to_string_alloc(int i, char **s);
|
|||||||
int ip_tos_from_string(const char *s);
|
int ip_tos_from_string(const char *s);
|
||||||
|
|
||||||
bool ifname_valid(const char *p);
|
bool ifname_valid(const char *p);
|
||||||
|
bool address_label_valid(const char *p);
|
||||||
|
|
||||||
int getpeercred(int fd, struct ucred *ucred);
|
int getpeercred(int fd, struct ucred *ucred);
|
||||||
int getpeersec(int fd, char **ret);
|
int getpeersec(int fd, char **ret);
|
||||||
|
@ -821,8 +821,8 @@ int config_parse_label(
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
if (strlen(rvalue) >= IFNAMSIZ) {
|
if (!address_label_valid(rvalue)) {
|
||||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Interface label is too long, ignoring assignment: %s", rvalue);
|
log_syntax(unit, LOG_ERR, filename, line, 0, "Interface label is too long or invalid, ignoring assignment: %s", rvalue);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user