]> source.dussan.org Git - rspamd.git/commitdiff
Port fix from libucl
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 16 Feb 2016 13:22:17 +0000 (13:22 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Tue, 16 Feb 2016 13:22:17 +0000 (13:22 +0000)
contrib/libucl/ucl_parser.c
contrib/libucl/ucl_util.c

index 9ac535cbe4b872ed3cf4771fcfe919d9090ad54f..cceb8a8578442d3c2ab8100bf118b7772f133f34 100644 (file)
@@ -1575,6 +1575,10 @@ ucl_parse_value (struct ucl_parser *parser, struct ucl_chunk *chunk)
                        }
 
                        obj = ucl_parser_get_container (parser);
+                       if (!obj) {
+                               return false;
+                       }
+
                        str_len = chunk->pos - c - 2;
                        obj->type = UCL_STRING;
                        if ((str_len = ucl_copy_or_store_ptr (parser, c + 1,
index fae6cdeb985466de013dd151237d68e5437f59ca..f6d83f163cb9368b78f4f2abf7b39df2dd57656c 100644 (file)
@@ -2769,14 +2769,16 @@ ucl_array_merge (ucl_object_t *top, ucl_object_t *elt, bool copy)
        UCL_ARRAY_GET (v1, top);
        UCL_ARRAY_GET (v2, cp);
 
-       kv_concat (ucl_object_t *, *v1, *v2);
+       if (v1 && v2) {
+               kv_concat (ucl_object_t *, *v1, *v2);
 
-       for (i = v2->n; i < v1->n; i ++) {
-               obj = &kv_A (*v1, i);
-               if (*obj == NULL) {
-                       continue;
+               for (i = v2->n; i < v1->n; i ++) {
+                       obj = &kv_A (*v1, i);
+                       if (*obj == NULL) {
+                               continue;
+                       }
+                       top->len ++;
                }
-               top->len ++;
        }
 
        return true;