Unbreak rwhod(8):
- It did not work with GENERIC kernel after r250603 because options PROCDESC was required for pdfork(2). It now just uses fork(2) instead when this syscall is not available. - Fix verify(). This function was broken in r250602 because the outermost "()" was removed from the condition !(isalnum() || ispunct()). It prevented hostnames including "-", for example.
This commit is contained in:
parent
3c951b7b9d
commit
d635351bf1
@ -274,6 +274,15 @@ main(int argc, char *argv[])
|
||||
exit(1);
|
||||
if (!quiet_mode) {
|
||||
pid_child_receiver = pdfork(&fdp, 0);
|
||||
if (pid_child_receiver == -1) {
|
||||
if (errno != ENOSYS) {
|
||||
syslog(LOG_ERR, "pdfork: %m");
|
||||
exit(1);
|
||||
} else {
|
||||
pid_child_receiver = fork();
|
||||
fdp = -1;
|
||||
}
|
||||
}
|
||||
if (pid_child_receiver == 0) {
|
||||
receiver_process();
|
||||
} else if (pid_child_receiver > 0) {
|
||||
@ -328,7 +337,7 @@ verify(char *name, int maxlen)
|
||||
|
||||
size = 0;
|
||||
while (*name != '\0' && size < maxlen - 1) {
|
||||
if (!isascii(*name) || !isalnum(*name) || ispunct(*name))
|
||||
if (!isascii(*name) || !(isalnum(*name) || ispunct(*name)))
|
||||
return (0);
|
||||
name++;
|
||||
size++;
|
||||
|
Loading…
Reference in New Issue
Block a user