heimdal: Fix printing a short int into a string
authorAndreas Schneider <asn@samba.org>
Wed, 9 Aug 2017 15:01:09 +0000 (17:01 +0200)
committerAndreas Schneider <asn@cryptomilk.org>
Fri, 11 Aug 2017 16:08:04 +0000 (18:08 +0200)
The size of portstr is too small to print an integer and we should print
a short anyway.

This fixes building with GCC 7.1

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12930

Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Fri Aug 11 18:08:04 CEST 2017 on sn-devel-144

source4/heimdal/lib/krb5/krbhst.c

index 9822bfb2f6d2751693c214066d9381c554a46241..dae32071b1434256dd804d90628bea95eb5f243c 100644 (file)
@@ -326,13 +326,13 @@ krb5_krbhst_format_string(krb5_context context, const krb5_krbhst_info *host,
                          char *hostname, size_t hostlen)
 {
     const char *proto = "";
-    char portstr[7] = "";
+    char portstr[7] = {0};
     if(host->proto == KRB5_KRBHST_TCP)
        proto = "tcp/";
     else if(host->proto == KRB5_KRBHST_HTTP)
        proto = "http://";
     if(host->port != host->def_port)
-       snprintf(portstr, sizeof(portstr), ":%d", host->port);
+       snprintf(portstr, sizeof(portstr), ":%hd", host->port);
     snprintf(hostname, hostlen, "%s%s%s", proto, host->hostname, portstr);
     return 0;
 }