summaryrefslogtreecommitdiff
path: root/src/network/getservbyport_r.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/getservbyport_r.c')
-rw-r--r--src/network/getservbyport_r.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/network/getservbyport_r.c b/src/network/getservbyport_r.c
index 0ae0e415..b7f21c6b 100644
--- a/src/network/getservbyport_r.c
+++ b/src/network/getservbyport_r.c
@@ -5,6 +5,7 @@
#include <inttypes.h>
#include <errno.h>
#include <string.h>
+#include <stdlib.h>
int getservbyport_r(int port, const char *prots,
struct servent *se, char *buf, size_t buflen, struct servent **res)
@@ -51,6 +52,9 @@ int getservbyport_r(int port, const char *prots,
break;
}
+ /* A numeric port string is not a service record. */
+ if (strtol(buf, 0, 10)==ntohs(port)) return ENOENT;
+
*res = se;
return 0;
}