diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-07-24 00:29:32 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-07-24 00:29:32 +0300 |
commit | 25df419c6703396e7e817bf6c8bb443f6c941e5d (patch) | |
tree | 3988bbd33bc9b676bcdabcf731e9635861a792ef | |
parent | 0d221775f5ab458358ee873b70ad16f284a9b1cb (diff) | |
download | micropython-25df419c6703396e7e817bf6c8bb443f6c941e5d.tar.gz micropython-25df419c6703396e7e817bf6c8bb443f6c941e5d.zip |
extmod/modbtree: Check __bt_open() return value for error.
-rw-r--r-- | extmod/modbtree.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/extmod/modbtree.c b/extmod/modbtree.c index 0a0c5271c0..6613c06c88 100644 --- a/extmod/modbtree.c +++ b/extmod/modbtree.c @@ -331,6 +331,9 @@ STATIC mp_obj_t mod_btree_open(size_t n_args, const mp_obj_t *pos_args, mp_map_t MP_ARRAY_SIZE(allowed_args), allowed_args, (mp_arg_val_t*)&args); DB *db = __bt_open(fname, /*flags*/O_CREAT | O_RDWR, /*mode*/0770, /*openinfo*/NULL, /*dflags*/0); + if (db == NULL) { + nlr_raise(mp_obj_new_exception_arg1(&mp_type_OSError, MP_OBJ_NEW_SMALL_INT(errno))); + } return MP_OBJ_FROM_PTR(btree_new(db)); } STATIC MP_DEFINE_CONST_FUN_OBJ_KW(mod_btree_open_obj, 1, mod_btree_open); |