mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-06-25 17:32:34 +00:00
trezor.config: check for errors from norcow
This commit is contained in:
parent
a66d0b2e40
commit
7c89f61f55
@ -26,7 +26,10 @@ STATIC mp_obj_t mod_TrezorConfig_Config_make_new(const mp_obj_type_t *type, size
|
|||||||
mp_arg_check_num(n_args, n_kw, 0, 0, false);
|
mp_arg_check_num(n_args, n_kw, 0, 0, false);
|
||||||
mp_obj_Config_t *o = m_new_obj(mp_obj_Config_t);
|
mp_obj_Config_t *o = m_new_obj(mp_obj_Config_t);
|
||||||
o->base.type = type;
|
o->base.type = type;
|
||||||
norcow_init();
|
bool r = norcow_init();
|
||||||
|
if (!r) {
|
||||||
|
mp_raise_msg(&mp_type_RuntimeError, "Could not initialize storage");
|
||||||
|
}
|
||||||
return MP_OBJ_FROM_PTR(o);
|
return MP_OBJ_FROM_PTR(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +44,9 @@ STATIC mp_obj_t mod_TrezorConfig_Config_get(mp_obj_t self, mp_obj_t app, mp_obj_
|
|||||||
const void *val;
|
const void *val;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
bool r = norcow_get(appkey, &val, &len);
|
bool r = norcow_get(appkey, &val, &len);
|
||||||
if (!r) return mp_const_none;
|
if (!r) {
|
||||||
|
return mp_const_none;
|
||||||
|
}
|
||||||
vstr_t vstr;
|
vstr_t vstr;
|
||||||
vstr_init_len(&vstr, len);
|
vstr_init_len(&vstr, len);
|
||||||
memcpy(vstr.buf, val, len);
|
memcpy(vstr.buf, val, len);
|
||||||
@ -62,7 +67,7 @@ STATIC mp_obj_t mod_TrezorConfig_Config_set(size_t n_args, const mp_obj_t *args)
|
|||||||
mp_get_buffer_raise(args[3], &value, MP_BUFFER_READ);
|
mp_get_buffer_raise(args[3], &value, MP_BUFFER_READ);
|
||||||
bool r = norcow_set(appkey, value.buf, value.len);
|
bool r = norcow_set(appkey, value.buf, value.len);
|
||||||
if (!r) {
|
if (!r) {
|
||||||
mp_raise_ValueError("Could not save value");
|
mp_raise_msg(&mp_type_RuntimeError, "Could not save value");
|
||||||
}
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
@ -73,7 +78,10 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_TrezorConfig_Config_set_obj, 4, 4
|
|||||||
/// Erases the whole config (use with caution!)
|
/// Erases the whole config (use with caution!)
|
||||||
/// '''
|
/// '''
|
||||||
STATIC mp_obj_t mod_TrezorConfig_Config_wipe(mp_obj_t self) {
|
STATIC mp_obj_t mod_TrezorConfig_Config_wipe(mp_obj_t self) {
|
||||||
norcow_wipe();
|
bool r = norcow_wipe();
|
||||||
|
if (!r) {
|
||||||
|
mp_raise_msg(&mp_type_RuntimeError, "Could not wipe storage");
|
||||||
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_TrezorConfig_Config_wipe_obj, mod_TrezorConfig_Config_wipe);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_TrezorConfig_Config_wipe_obj, mod_TrezorConfig_Config_wipe);
|
||||||
|
Loading…
Reference in New Issue
Block a user