summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--runtime/transport/ChangeLog5
-rw-r--r--runtime/transport/symbols.c13
2 files changed, 12 insertions, 6 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog
index f9dca7f2..dcee1d79 100644
--- a/runtime/transport/ChangeLog
+++ b/runtime/transport/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-20 Martin Hunt <hunt@redhat.com>
+
+ * symbols.c (_stp_alloc_module): Fix up error
+ cleanup when malloc fails.
+
2007-03-14 Martin Hunt <hunt@redhat.com>
* transport_msgs.h: ifdef old messages as such.
diff --git a/runtime/transport/symbols.c b/runtime/transport/symbols.c
index 72070c7d..9d5163d0 100644
--- a/runtime/transport/symbols.c
+++ b/runtime/transport/symbols.c
@@ -86,12 +86,13 @@ static struct _stp_module * _stp_alloc_module(unsigned num, unsigned datasize)
return mod;
bad:
- if (mod)
- kfree(mod);
- if (mod->allocated && mod->symbols)
- vfree(mod->symbols);
- else
- kfree(mod->symbols);
+ if (mod) {
+ if (mod->allocated && mod->symbols)
+ vfree(mod->symbols);
+ else
+ kfree(mod->symbols);
+ kfree(mod);
+ }
return NULL;
}