diff options
-rw-r--r-- | common/sock_any.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/common/sock_any.c b/common/sock_any.c index f01933b..7a128f2 100644 --- a/common/sock_any.c +++ b/common/sock_any.c @@ -4,6 +4,7 @@ #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> +#include <string.h> #include "sock_any.h" @@ -183,11 +184,11 @@ int sock_any_pton(const char* addr, struct sockaddr_any* any, int defport) t = NULL; l = strlen(addr); - if(l < 255 && isalpha(addr[0])) + if(l >= 255 || !isalpha(addr[0])) break; /* Some basic illegal character checks */ - if(strspn(addr, " /\\") != l) + if(strcspn(addr, " /\\") != l) break; strcpy(buf, addr); |