do not destroy whack_attr if it hasn't been initialized
authorAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 29 Apr 2010 05:28:51 +0000 (07:28 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Thu, 29 Apr 2010 05:28:51 +0000 (07:28 +0200)
src/pluto/whack_attribute.c

index 11692dc..6a12f0c 100644 (file)
@@ -216,12 +216,17 @@ METHOD(whack_attribute_t, create_lease_enumerator, enumerator_t*,
  */
 void whack_attribute_finalize()
 {
-       private_whack_attribute_t *this = (private_whack_attribute_t*)whack_attr;
-       hydra->attributes->remove_provider(hydra->attributes,
+       private_whack_attribute_t *this;
+
+       if (whack_attr)
+       {
+               this = (private_whack_attribute_t*)whack_attr;
+               hydra->attributes->remove_provider(hydra->attributes,
                                                                           &this->public.provider);
-       this->lock->destroy(this->lock);
-       this->pools->destroy_offset(this->pools, offsetof(mem_pool_t, destroy));
-       free(this);
+               this->lock->destroy(this->lock);
+               this->pools->destroy_offset(this->pools, offsetof(mem_pool_t, destroy));
+               free(this);
+       }
 }
 
 /**