You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2019/12/16 20:37:05 UTC
[celix] branch develop updated: Fix for possible null pointer for
the modified index in the etcdlib_get_directory function (#134)
This is an automated email from the ASF dual-hosted git repository.
pnoltes pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/celix.git
The following commit(s) were added to refs/heads/develop by this push:
new 6fbcbc1 Fix for possible null pointer for the modified index in the etcdlib_get_directory function (#134)
6fbcbc1 is described below
commit 6fbcbc169944f9e6e975834c6cb23a8947d512d9
Author: dhbfischer <52...@users.noreply.github.com>
AuthorDate: Mon Dec 16 21:36:54 2019 +0100
Fix for possible null pointer for the modified index in the etcdlib_get_directory function (#134)
---
libs/etcdlib/src/etcd.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/libs/etcdlib/src/etcd.c b/libs/etcdlib/src/etcd.c
index 97cc861..a0324de 100644
--- a/libs/etcdlib/src/etcd.c
+++ b/libs/etcdlib/src/etcd.c
@@ -279,13 +279,20 @@ int etcdlib_get_directory(const etcdlib_t *etcdlib, const char* directory, etcdl
fprintf(stderr, "[ETCDLIB] Error: %s in js_root not found", ETCD_JSON_NODE);
}
if (js_rootnode != NULL) {
- *modifiedIndex = 0;
- retVal = etcd_get_recursive_values(js_rootnode, callback, arg, (json_int_t*)modifiedIndex);
+ long long modIndex = 0;
+ long long *ptrModIndex = NULL;
+ if(modifiedIndex != NULL) {
+ *modifiedIndex = 0;
+ ptrModIndex = modifiedIndex;
+ } else {
+ ptrModIndex = &modIndex;
+ }
+ retVal = etcd_get_recursive_values(js_rootnode, callback, arg, (json_int_t*)ptrModIndex);
long long indexFromHeader = etcd_get_current_index(reply.header);
- if (indexFromHeader > *modifiedIndex) {
- *modifiedIndex = indexFromHeader;
+ if (indexFromHeader > *ptrModIndex) {
+ *ptrModIndex = indexFromHeader;
}
- } else {
+ } else if (modifiedIndex != NULL) {
// Error occurred, retrieve the index of ETCD from the error code
js_rootnode = json_object_get(js_root, ETCD_JSON_INDEX);
if(js_rootnode) {
@@ -294,7 +301,6 @@ int etcdlib_get_directory(const etcdlib_t *etcdlib, const char* directory, etcdl
} else {
fprintf(stderr, "[ETCDLIB] Error: index not found in error %s\n", reply.memory);
-
}
}