summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/inet/ethers.c10
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);