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 <[email protected]>
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);
-
                        }
 
                }

Reply via email to