You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by er...@apache.org on 2018/02/08 18:05:47 UTC
celix git commit: Fixed memory leaks reported by coverity
Repository: celix
Updated Branches:
refs/heads/develop 7b3d1a8e5 -> af26af6b7
Fixed memory leaks reported by coverity
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/af26af6b
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/af26af6b
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/af26af6b
Branch: refs/heads/develop
Commit: af26af6b71513a1d808b88e617beced679ddad81
Parents: 7b3d1a8
Author: Erjan Altena <er...@gmail.com>
Authored: Thu Feb 8 19:05:30 2018 +0100
Committer: Erjan Altena <er...@gmail.com>
Committed: Thu Feb 8 19:05:30 2018 +0100
----------------------------------------------------------------------
etcdlib/src/etcd.c | 8 +-------
etcdlib/test/etcdlib_test.c | 7 +++++++
pubsub/pubsub_admin_zmq/src/psa_activator.c | 17 +++++++++--------
3 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/af26af6b/etcdlib/src/etcd.c
----------------------------------------------------------------------
diff --git a/etcdlib/src/etcd.c b/etcdlib/src/etcd.c
index 861b07a..0c9d615 100644
--- a/etcdlib/src/etcd.c
+++ b/etcdlib/src/etcd.c
@@ -374,9 +374,6 @@ int etcd_watch(const char* key, long long index, char** action, char** prevValue
reply.header = NULL; /* will be grown as needed by the realloc above */
reply.headerSize = 0; /* no data at this point */
- reply.header = malloc(1); /* will be grown as needed by the realloc above */
- reply.headerSize = 0; /* no data at this point */
-
if (index != 0)
asprintf(&url, "http://%s:%d/v2/keys/%s?wait=true&recursive=true&waitIndex=%lld", etcd_server, etcd_port, key, index);
else
@@ -431,9 +428,7 @@ int etcd_watch(const char* key, long long index, char** action, char** prevValue
}
- if (reply.memory) {
- free(reply.memory);
- }
+ free(reply.memory);
return retVal;
}
@@ -475,7 +470,6 @@ int etcd_del(const char* key) {
}
free(reply.memory);
- free(reply.header);
return retVal;
}
http://git-wip-us.apache.org/repos/asf/celix/blob/af26af6b/etcdlib/test/etcdlib_test.c
----------------------------------------------------------------------
diff --git a/etcdlib/test/etcdlib_test.c b/etcdlib/test/etcdlib_test.c
index 7c2d573..afd0e74 100644
--- a/etcdlib/test/etcdlib_test.c
+++ b/etcdlib/test/etcdlib_test.c
@@ -40,6 +40,7 @@ int simplewritetest() {
printf("etcdlib test error: expected testvalue got %s\n", value);
res = -1;
}
+ free(value);
return res;
}
@@ -53,6 +54,10 @@ void* waitForChange(void*arg) {
printf("Watching for index %d\n", *idx);
etcd_watch("hier/ar", *idx, &action, &prevValue, &value, &rkey, &modifiedIndex);
printf(" New value from watch : [%s]%s => %s\n", rkey, prevValue, value);
+ free (action);
+ free(prevValue);
+ free(rkey);
+ free(value);
*idx = modifiedIndex+1;
etcd_watch("hier/ar", *idx, &action, &prevValue, &value, &rkey, &modifiedIndex);
printf(" New value from watch : [%s]%s => %s\n", rkey, prevValue, value);
@@ -70,6 +75,7 @@ int waitforchangetest() {
int index;
etcd_get("hier/ar/chi/cal", &value, &index);
+ free(value);
pthread_t waitThread;
index++;
pthread_create(&waitThread, NULL, waitForChange, &index);
@@ -83,6 +89,7 @@ int waitforchangetest() {
printf("etcdtest::waitforchange1 expected testvalue3, got %s\n", (char*)resVal);
res = -1;
}
+ free(resVal);
return res;
}
http://git-wip-us.apache.org/repos/asf/celix/blob/af26af6b/pubsub/pubsub_admin_zmq/src/psa_activator.c
----------------------------------------------------------------------
diff --git a/pubsub/pubsub_admin_zmq/src/psa_activator.c b/pubsub/pubsub_admin_zmq/src/psa_activator.c
index f754cd1..687e909 100644
--- a/pubsub/pubsub_admin_zmq/src/psa_activator.c
+++ b/pubsub/pubsub_admin_zmq/src/psa_activator.c
@@ -99,7 +99,15 @@ celix_status_t bundleActivator_create(bundle_context_pt context, void **userData
&customizer);
if(status == CELIX_SUCCESS){
status = serviceTracker_create(context, PUBSUB_SERIALIZER_SERVICE, customizer, &(activator->serializerTracker));
- if(status != CELIX_SUCCESS){
+ if (status == CELIX_SUCCESS) {
+ properties_pt shellProps = properties_create();
+ properties_set(shellProps, OSGI_SHELL_COMMAND_NAME, "psa_zmq_info");
+ properties_set(shellProps, OSGI_SHELL_COMMAND_USAGE, "psa_zmq_info");
+ properties_set(shellProps, OSGI_SHELL_COMMAND_DESCRIPTION, "psa_zmq_info: Overview of PubSub ZMQ Admin");
+ activator->admin->shellCmdService.handle = activator;
+ activator->admin->shellCmdService.executeCommand = shellCommand;
+ bundleContext_registerService(context, OSGI_SHELL_COMMAND_SERVICE_NAME, &activator->admin->shellCmdService, shellProps, &activator->admin->shellCmdReg);
+ } else {
serviceTrackerCustomizer_destroy(customizer);
pubsubAdmin_destroy(activator->admin);
}
@@ -108,13 +116,6 @@ celix_status_t bundleActivator_create(bundle_context_pt context, void **userData
pubsubAdmin_destroy(activator->admin);
}
}
- properties_pt shellProps = properties_create();
- properties_set(shellProps, OSGI_SHELL_COMMAND_NAME, "psa_zmq_info");
- properties_set(shellProps, OSGI_SHELL_COMMAND_USAGE, "psa_zmq_info");
- properties_set(shellProps, OSGI_SHELL_COMMAND_DESCRIPTION, "psa_zmq_info: Overview of PubSub ZMQ Admin");
- activator->admin->shellCmdService.handle = activator;
- activator->admin->shellCmdService.executeCommand = shellCommand;
- bundleContext_registerService(context, OSGI_SHELL_COMMAND_SERVICE_NAME, &activator->admin->shellCmdService, shellProps, &activator->admin->shellCmdReg);
}
return status;
}