summaryrefslogtreecommitdiff
path: root/resolv
diff options
context:
space:
mode:
Diffstat (limited to 'resolv')
-rw-r--r--resolv/res_query.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/resolv/res_query.c b/resolv/res_query.c
index d3a959f3b4..b2b45acde7 100644
--- a/resolv/res_query.c
+++ b/resolv/res_query.c
@@ -155,14 +155,14 @@ __libc_res_nquery(res_state statp,
nquery1 = n;
/* Align the buffer. */
int npad = ((nquery1 + __alignof__ (HEADER) - 1)
- & ~(__alignof__ (HEADER)));
+ & ~(__alignof__ (HEADER) - 1)) - nquery1;
if (n > bufsize - npad)
{
n = -1;
goto unspec_nomem;
}
- query2 = buf + npad;
int nused = n + npad;
+ query2 = buf + nused;
n = res_nmkquery(statp, QUERY, name, class, T_AAAA, NULL, 0,
NULL, query2, bufsize - nused);
if (n > 0
@@ -204,8 +204,10 @@ __libc_res_nquery(res_state statp,
if ((statp->options & RES_USE_EDNS0) != 0
&& ((oflags ^ statp->_flags) & RES_F_EDNS0ERR) != 0) {
statp->_flags |= RES_F_EDNS0ERR;
+#ifdef DEBUG
if (statp->options & RES_DEBUG)
printf(";; res_nquery: retry without EDNS0\n");
+#endif
goto again;
}
#ifdef DEBUG