chiark / gitweb /
src/addrfam.c (adns_addr2text): Don't print junk in debugging output.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 24 May 2014 13:00:03 +0000 (14:00 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 19 Oct 2014 20:09:53 +0000 (21:09 +0100)
At the point we print `adns_addr2text: will print scoped addr ...' the
buffer isn't null-terminated.  Fortunately, we have the length of the
valid portion of the buffer, so use that to print only the good piece.

Signed-off-by: Mark Wooding <mdw@distorted.org.uk>
src/addrfam.c

index a357f9e33bc737e861676bc14c37fe208e881030..8a49d5b0b14262d1881b548070eb5c58182d942e 100644 (file)
@@ -411,7 +411,8 @@ int adns_addr2text(const struct sockaddr *sa, adns_queryflags flags,
       assert(remain >= IF_NAMESIZE+1/*%*/);
       *scopeptr++= '%'; remain--;
       bool parsedname = 0;
       assert(remain >= IF_NAMESIZE+1/*%*/);
       *scopeptr++= '%'; remain--;
       bool parsedname = 0;
-      af_debug("will print scoped addr %s %% %"PRIu32"", buffer, scope);
+      af_debug("will print scoped addr `%.*s' %% %"PRIu32"",
+              scopeoffset,buffer, scope);
       if (scope <= UINT_MAX /* so we can pass it to if_indextoname */
          && !(flags & adns_qf_addrlit_scope_numeric)
          && addrtext_scope_use_ifname(sa)) {
       if (scope <= UINT_MAX /* so we can pass it to if_indextoname */
          && !(flags & adns_qf_addrlit_scope_numeric)
          && addrtext_scope_use_ifname(sa)) {