diff options
author | Tomas Bzatek <tbzatek@redhat.com> | 2013-11-05 17:52:47 +0100 |
---|---|---|
committer | Tomas Bzatek <tbzatek@redhat.com> | 2013-11-06 17:29:48 +0100 |
commit | 0193e7ffd381e3ddff9fd4c66b3cf05d6a02c3e2 (patch) | |
tree | 3164ac6cd6ef4ce7a960c33826f371b4b00961b0 /src/indmanager | |
parent | f9532a59568191f200c85cfbf82f940ccffad698 (diff) | |
download | openlmi-providers-0193e7ffd381e3ddff9fd4c66b3cf05d6a02c3e2.tar.gz openlmi-providers-0193e7ffd381e3ddff9fd4c66b3cf05d6a02c3e2.tar.xz openlmi-providers-0193e7ffd381e3ddff9fd4c66b3cf05d6a02c3e2.zip |
indmanager: Fix empty enum cleanup
When the watcher() callback returns unsuccessfully and gather() part
has not been run, we may end up with NULL enums that have been originally
created by add_enumeration(). This prevents segfault in such case.
Diffstat (limited to 'src/indmanager')
-rw-r--r-- | src/indmanager/ind_manager.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/indmanager/ind_manager.c b/src/indmanager/ind_manager.c index 7eb7b55..2fae132 100644 --- a/src/indmanager/ind_manager.c +++ b/src/indmanager/ind_manager.c @@ -1021,8 +1021,10 @@ bool maybe_remove_polled(IMManager *manager, CMPIObjectPath *op, IMError *err) } else { manager->enums->first = current->next; } - CMRelease(current->prev_enum); - CMRelease(current->this_enum); + if (current->prev_enum) + CMRelease(current->prev_enum); + if (current->this_enum) + CMRelease(current->this_enum); CMRelease(current->op); } return true; |