diff options
author | Krzysztof Blazewicz <krzysztof.blazewicz@uxeon.com> | 2016-08-20 16:59:53 +0200 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-08-24 01:31:16 +0300 |
commit | 5a5449d4eb46465e5d47fb20104e13122ea4110b (patch) | |
tree | c8e1f26e4dfc804b939894a49193b5c1f7558f17 | |
parent | 253e1a6f6771c09db742c22a25ab53ffbd68eab2 (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.c | 1 |
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; } |