summary refs log tree commit diff
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