tests: avoid use of freed pointer
authorJim Meyering <jim@meyering.net>
Tue, 20 Sep 2011 14:35:30 +0000 (16:35 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 20 Sep 2011 16:14:51 +0000 (18:14 +0200)
[spotted by coverity]

This is only in tests/, but easy to fix, so...
I've included extra context so you can see how var->value would
be used in the following atoi call.

>From cf9ae83fd2da8d7a289b048ef0feed4096f6d263 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@redhat.com>
Date: Tue, 20 Sep 2011 16:32:59 +0200
Subject: [PATCH] avoid use of free'd pointer

* asschk.c (set_type_var): Set var->value to NULL after freeing it,
to avoid subsequent use of freed pointer.

tests/ChangeLog
tests/asschk.c

index b2e95f3..aa93f07 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-20  Jim Meyering  <meyering@redhat.com>
+
+       avoid use of free'd pointer
+       * asschk.c (set_type_var): Set var->value to NULL after freeing it,
+       to avoid subsequent use of freed pointer.
+
 2009-10-13  Werner Koch  <wk@g10code.com>
 
        * asschk.c (die): Replace this vararg macro by C-89 compliant
index 3eb2621..c0108e7 100644 (file)
@@ -514,7 +514,10 @@ set_type_var (const char *name, const char *value, VARTYPE type)
       variable_list = var;
     }
   else
-    free (var->value);
+    {
+      free (var->value);
+      var->value = NULL;
+    }
 
   if (var->type == VARTYPE_FD && var->value)
     {