From 37a6120ee39ef331f2ccf6e484e24cba96b9c15a Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Wed, 11 Mar 2015 20:02:07 +0100 Subject: [PATCH] store_expr: iterator: Support constant arrays without a stored object. --- src/core/store_expr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/core/store_expr.c b/src/core/store_expr.c index 8fc063d..60b0bea 100644 --- a/src/core/store_expr.c +++ b/src/core/store_expr.c @@ -302,10 +302,12 @@ sdb_store_expr_iter(sdb_store_expr_t *expr, sdb_store_obj_t *obj, sdb_avltree_iter_t *tree = NULL; sdb_data_t array = SDB_DATA_INIT; - if ((! expr) || (! obj)) + if (! expr) return NULL; if (expr->type == TYPED_EXPR) { + if (! obj) + return NULL; if (obj->type == SDB_HOST) { if (expr->data.data.integer == SDB_SERVICE) tree = sdb_avltree_get_iter(HOST(obj)->services); @@ -324,6 +326,8 @@ sdb_store_expr_iter(sdb_store_expr_t *expr, sdb_store_obj_t *obj, } } else if (expr->type == FIELD_VALUE) { + if (! obj) + return NULL; if (expr->data.data.integer == SDB_FIELD_BACKEND) { /* while scanning the store, we hold a read lock, so it's safe to * access the data without copying */ -- 2.30.2