|
@@ -5,6 +5,7 @@
|
|
#include <inttypes.h>
|
|
#include <inttypes.h>
|
|
#include <errno.h>
|
|
#include <errno.h>
|
|
#include <string.h>
|
|
#include <string.h>
|
|
|
|
+#include <stdlib.h>
|
|
|
|
|
|
int getservbyport_r(int port, const char *prots,
|
|
int getservbyport_r(int port, const char *prots,
|
|
struct servent *se, char *buf, size_t buflen, struct servent **res)
|
|
struct servent *se, char *buf, size_t buflen, struct servent **res)
|
|
@@ -51,6 +52,9 @@ int getservbyport_r(int port, const char *prots,
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /* A numeric port string is not a service record. */
|
|
|
|
+ if (strtol(buf, 0, 10)==ntohs(port)) return ENOENT;
|
|
|
|
+
|
|
*res = se;
|
|
*res = se;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|