diff options
-rw-r--r-- | libc/inet/ethers.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/libc/inet/ethers.c b/libc/inet/ethers.c index 857e5d165..caa4a644c 100644 --- a/libc/inet/ethers.c +++ b/libc/inet/ethers.c @@ -32,11 +32,11 @@ static const char *__ether_line(const char *line, struct ether_addr *addr) if (!res) return NULL; - while (*line && (*line != ' ') && (*line != '\t')) + while (*line && (*line != '\n') && (*line != ' ') && (*line != '\t')) line++; - while (*line && ((*line == ' ') || (*line == '\t'))) + while (*line && (*line != '\n') && ((*line == ' ') || (*line == '\t'))) line++; - return (*line) ? line : NULL; + return (*line && (*line != '\n')) ? line : NULL; } /* @@ -45,9 +45,7 @@ static const char *__ether_line(const char *line, struct ether_addr *addr) */ static const char *__ether_line_w(char *line, struct ether_addr *addr) { - char *end = strchr(line, '#'); - if (!end) - end = strchr(line, '\n'); + char *end = strpbrk(line, "#\n"); if (end) *end = '\0'; return __ether_line(line, addr); |