summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authornectar <nectar@FreeBSD.org>2002-09-13 20:31:29 +0000
committernectar <nectar@FreeBSD.org>2002-09-13 20:31:29 +0000
commit57c880964051d411ff6f58ea80ab93527222defb (patch)
tree4abdf8e587e50c215c8768bca481fe102ec47c16 /lib/libc
parent413ebcf5d275744ebcbceaba55b2ab7e96701269 (diff)
downloadFreeBSD-src-57c880964051d411ff6f58ea80ab93527222defb.zip
FreeBSD-src-57c880964051d411ff6f58ea80ab93527222defb.tar.gz
When using res_send/res_query/res_search, the caller must either
insure enough space is available for the response, or be prepared to resize the buffer and retry as necessary. Do the conservative thing and make sure enough space is available. Reviewed by: silence on freebsd-audit
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/getaddrinfo.c6
-rw-r--r--lib/libc/net/gethostbydns.c6
-rw-r--r--lib/libc/net/getnetbydns.c6
-rw-r--r--lib/libc/net/name6.c6
-rw-r--r--lib/libc/net/res_query.c6
-rw-r--r--lib/libc/net/res_update.c3
6 files changed, 7 insertions, 26 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 0f724f9..d933b7e 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -201,11 +201,7 @@ static const ns_src default_dns_files[] = {
{ 0 }
};
-#if PACKETSZ > 1024
-#define MAXPACKET PACKETSZ
-#else
-#define MAXPACKET 1024
-#endif
+#define MAXPACKET 65536
typedef union {
HEADER hdr;
diff --git a/lib/libc/net/gethostbydns.c b/lib/libc/net/gethostbydns.c
index 1044727..479cc4a 100644
--- a/lib/libc/net/gethostbydns.c
+++ b/lib/libc/net/gethostbydns.c
@@ -103,11 +103,7 @@ static void addrsort(char **, int);
static void dprintf(char *, int) __printflike(1, 0);
#endif
-#if PACKETSZ > 1024
-#define MAXPACKET PACKETSZ
-#else
-#define MAXPACKET 1024
-#endif
+#define MAXPACKET 65536
typedef union {
HEADER hdr;
diff --git a/lib/libc/net/getnetbydns.c b/lib/libc/net/getnetbydns.c
index 369bf2b..c463176 100644
--- a/lib/libc/net/getnetbydns.c
+++ b/lib/libc/net/getnetbydns.c
@@ -88,11 +88,7 @@ extern int h_errno;
#define BYNAME 1
#define MAXALIASES 35
-#if PACKETSZ > 1024
-#define MAXPACKET PACKETSZ
-#else
-#define MAXPACKET 1024
-#endif
+#define MAXPACKET 65536
typedef union {
HEADER hdr;
diff --git a/lib/libc/net/name6.c b/lib/libc/net/name6.c
index d80f9c2..89b374c 100644
--- a/lib/libc/net/name6.c
+++ b/lib/libc/net/name6.c
@@ -967,11 +967,7 @@ struct __res_type_list {
int rtl_type;
};
-#if PACKETSZ > 1024
-#define MAXPACKET PACKETSZ
-#else
-#define MAXPACKET 1024
-#endif
+#define MAXPACKET 65536
typedef union {
HEADER hdr;
diff --git a/lib/libc/net/res_query.c b/lib/libc/net/res_query.c
index 4dde3e4..e672586 100644
--- a/lib/libc/net/res_query.c
+++ b/lib/libc/net/res_query.c
@@ -90,11 +90,7 @@ __FBSDID("$FreeBSD$");
#include "res_config.h"
-#if PACKETSZ > 1024
-#define MAXPACKET PACKETSZ
-#else
-#define MAXPACKET 1024
-#endif
+#define MAXPACKET 65536
/*
* Formulate a normal query, send, and await answer.
diff --git a/lib/libc/net/res_update.c b/lib/libc/net/res_update.c
index f17374f..0dac1ba 100644
--- a/lib/libc/net/res_update.c
+++ b/lib/libc/net/res_update.c
@@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$");
*/
#define NSMAX 16
+#define MAXPACKET 65536
struct ns1 {
char nsname[MAXDNAME];
@@ -71,7 +72,7 @@ struct zonegrp {
int
res_update(ns_updrec *rrecp_in) {
ns_updrec *rrecp, *tmprrecp;
- u_char buf[PACKETSZ], answer[PACKETSZ], packet[2*PACKETSZ];
+ u_char buf[PACKETSZ], answer[MAXPACKET], packet[2*PACKETSZ];
char name[MAXDNAME], zname[MAXDNAME], primary[MAXDNAME],
mailaddr[MAXDNAME];
u_char soardata[2*MAXCDNAME+5*INT32SZ];
OpenPOWER on IntegriCloud