summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Blazewicz <krzysztof.blazewicz@uxeon.com>2016-08-20 16:59:53 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2016-08-24 01:31:16 +0300
commit5a5449d4eb46465e5d47fb20104e13122ea4110b (patch)
treec8e1f26e4dfc804b939894a49193b5c1f7558f17
parent253e1a6f6771c09db742c22a25ab53ffbd68eab2 (diff)
extmod/modbtree: do CHECK_ERROR after __bt_seq()
In `btree_seq()`, when `__bt_seq()` gets called with invalid `flags` argument it will return `RET_ERROR` and it won't initialize `val`. If field `data` of uninitialized `val` is passed to `mp_obj_new_bytes()` it causes a segfault.
-rw-r--r--extmod/modbtree.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/extmod/modbtree.c b/extmod/modbtree.c
index f21e7e442..ea2ea582c 100644
--- a/extmod/modbtree.c
+++ b/extmod/modbtree.c
@@ -133,6 +133,7 @@ STATIC mp_obj_t btree_seq(size_t n_args, const mp_obj_t *args) {
}
int res = __bt_seq(self->db, &key, &val, flags);
+ CHECK_ERROR(res);
if (res == RET_SPECIAL) {
return mp_const_none;
}