cvs updates from Wed Dec 15 17:45:22 EST 2010
[tridge/bind9.git] / bin / dig / dighost.c
index a8f27da3d5b90a25a28f0e307f7967d5e6882c77..fc5e491ef5ba9e4f48ee457675510adbf0015c81 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: dighost.c,v 1.328.22.4 2010/08/10 08:43:40 marka Exp $ */
+/* $Id: dighost.c,v 1.336 2010/12/09 00:54:33 marka Exp $ */
 
 /*! \file
  *  \note
@@ -252,7 +252,7 @@ isc_result_t          opentmpkey(isc_mem_t *mctx, const char *file,
                             char **tempp, FILE **fp);
 isc_result_t     removetmpkey(isc_mem_t *mctx, const char *file);
 void             clean_trustedkey(void);
-void             insert_trustedkey(dst_key_t  * key);
+void             insert_trustedkey(dst_key_t **key);
 #if DIG_SIGCHASE_BU
 isc_result_t     getneededrr(dns_message_t *msg);
 void             sigchase_bottom_up(dns_message_t *msg);
@@ -1142,7 +1142,6 @@ setup_file_key(void) {
                       keynametext, isc_result_totext(result));
                goto failure;
        }
-       dstkey = NULL;
  failure:
        if (dstkey != NULL)
                dst_key_free(&dstkey);
@@ -4053,14 +4052,15 @@ sigchase_scanname(dns_rdatatype_t type, dns_rdatatype_t covers,
 }
 
 void
-insert_trustedkey(dst_key_t * key)
+insert_trustedkey(dst_key_t **keyp)
 {
-       if (key == NULL)
+       if (*keyp == NULL)
                return;
        if (tk_list.nb_tk >= MAX_TRUSTED_KEY)
                return;
 
-       tk_list.key[tk_list.nb_tk++] = key;
+       tk_list.key[tk_list.nb_tk++] = *keyp;
+       *keyp = NULL;
        return;
 }
 
@@ -4234,11 +4234,12 @@ get_trusted_key(isc_mem_t *mctx)
                        fclose(fp);
                        return (ISC_R_FAILURE);
                }
-               insert_trustedkey(key);
 #if 0
                dst_key_tofile(key, DST_TYPE_PUBLIC,"/tmp");
 #endif
-               key = NULL;
+               insert_trustedkey(&key);
+               if (key != NULL)
+                       dst_key_free(&key);
        }
        return (ISC_R_SUCCESS);
 }