Avoid -Werror=address failure due to embedded NULL check in _mg_buffer_zero
authorAndrew Bartlett <abartlet@samba.org>
Wed, 27 May 2020 23:29:32 +0000 (11:29 +1200)
committerNico Williams <nico@cryptonector.com>
Thu, 28 May 2020 04:23:43 +0000 (23:23 -0500)
Seen with Ubuntu 18.04
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)

mech/gss_krb5.c: In function ‘gss_krb5_ccache_name’:
mech/gss_krb5.c:501:18: error: the address of ‘buffer’ will always evaluate as ‘true’ [-Werror=address]
  _mg_buffer_zero(&buffer);
                  ^
mech/mech_locl.h:72:7: note: in definition of macro ‘_mg_buffer_zero’
   if (buffer) {   \
       ^~~~~~

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
lib/gssapi/mech/gss_krb5.c

index bd7f813ccfc2fad34f6505b0a765230b89acbea8..ee376229c6bd4bc6fb4551e69ed5128cd523905b 100644 (file)
@@ -486,7 +486,7 @@ gss_krb5_ccache_name(OM_uint32 *minor_status,
                     const char **out_name)
 {
     struct _gss_mech_switch *m;
-    gss_buffer_desc buffer;
+    gss_buffer_desc buffer = GSS_C_EMPTY_BUFFER;
     OM_uint32 junk;
 
     _gss_load_mech();
@@ -494,11 +494,9 @@ gss_krb5_ccache_name(OM_uint32 *minor_status,
     if (out_name)
        *out_name = NULL;
 
+    buffer.value = rk_UNCONST(name);
     if (name) {
-       buffer.value = rk_UNCONST(name);
        buffer.length = strlen(name);
-    } else {
-       _mg_buffer_zero(&buffer);
     }
 
     HEIM_TAILQ_FOREACH(m, &_gss_mechs, gm_link) {