diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/transport/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/transport/symbols.c | 13 |
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; } |