summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/2lib/2api.c3
-rw-r--r--firmware/2lib/2misc.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/firmware/2lib/2api.c b/firmware/2lib/2api.c
index 0138669d..e1a06230 100644
--- a/firmware/2lib/2api.c
+++ b/firmware/2lib/2api.c
@@ -291,5 +291,8 @@ int vb2api_check_hash(struct vb2_context *ctx)
vb2_signature_data(&pre->body_signature),
digest,
&wb);
+ if (rv)
+ vb2_fail(ctx, VB2_RECOVERY_RO_INVALID_RW, rv);
+
return rv;
}
diff --git a/firmware/2lib/2misc.c b/firmware/2lib/2misc.c
index 685cf07d..f5571dc6 100644
--- a/firmware/2lib/2misc.c
+++ b/firmware/2lib/2misc.c
@@ -95,6 +95,7 @@ void vb2_fail(struct vb2_context *ctx, uint8_t reason, uint8_t subcode)
* If recovery is already requested, it's a more specific error code
* than later code is providing and we shouldn't overwrite it.
*/
+ VB2_DEBUG("Both slots are bad. Need recovery\n");
if (!vb2_nv_get(ctx, VB2_NV_RECOVERY_REQUEST)) {
vb2_nv_set(ctx, VB2_NV_RECOVERY_REQUEST, reason);
vb2_nv_set(ctx, VB2_NV_RECOVERY_SUBCODE, subcode);