ensure that Curl_wildcard_dtor() leaves WildcardData struct zero initialized
authorYang Tse <yangsita@gmail.com>
Thu, 10 Jun 2010 00:30:23 +0000 (02:30 +0200)
committerYang Tse <yangsita@gmail.com>
Thu, 10 Jun 2010 00:30:23 +0000 (02:30 +0200)
lib/wildcard.c

index 0fe153c..9fe5d51 100644 (file)
@@ -34,6 +34,7 @@
 
 CURLcode Curl_wildcard_init(struct WildcardData *wc)
 {
+  DEBUGASSERT(wc->filelist == NULL);
   /* now allocate only wc->filelist, everything else
      will be allocated if it is needed. */
   wc->filelist = Curl_llist_alloc(Curl_fileinfo_dtor);
@@ -50,8 +51,10 @@ void Curl_wildcard_dtor(struct WildcardData *wc)
 
   if(wc->tmp_dtor) {
     wc->tmp_dtor(wc->tmp);
+    wc->tmp_dtor = ZERO_NULL;
     wc->tmp = NULL;
   }
+  DEBUGASSERT(wc->tmp == NULL);
 
   if(wc->filelist) {
     Curl_llist_destroy(wc->filelist, NULL);
@@ -67,5 +70,7 @@ void Curl_wildcard_dtor(struct WildcardData *wc)
     free(wc->pattern);
     wc->pattern = NULL;
   }
+
   wc->customptr = NULL;
+  wc->state = CURLWC_INIT;
 }