Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'networking/nslookup.c')
-rw-r--r--networking/nslookup.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/networking/nslookup.c b/networking/nslookup.c
index 24eae4010..249083e24 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -589,6 +589,7 @@ static int RESOLVFUNC res_mkquery(int op, const char *dname, int class, int type
if (l>253 || buflen<n || op>15u || class>255u || type>255u)
return -1;
+//TODO: why do we even have the q[] array? Use buf[] directly!
/* Construct query template - ID will be filled later */
memset(q, 0, n);
q[2] = op*8 + 1;
@@ -637,7 +638,12 @@ struct query {
unsigned qlen;
// unsigned latency;
// uint8_t rcode;
- unsigned char query[512];
+ /* res_mkquery() balks on names > 253 chars.
+ * The formed query is 253+18 chars at max.
+ * Real hostnames are nowhere near that long anyway.
+ * Use of power-of-2 size means smaller code.
+ */
+ unsigned char query[512 - sizeof(int) - sizeof(char*)];
// unsigned char reply[512];
};