From 03f29f5be66d97c53c757a7d28403aa4608b6223 Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Fri, 3 Mar 2023 00:23:12 +0100 Subject: [PATCH] Fix cbor processing when unknown command is used. Signed-off-by: Pol Henarejos --- src/fido/cbor.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/fido/cbor.c b/src/fido/cbor.c index 7c833fe..68dc507 100644 --- a/src/fido/cbor.c +++ b/src/fido/cbor.c @@ -45,9 +45,10 @@ size_t cbor_len = 0; uint8_t cmd = 0; int cbor_parse(uint8_t cmd, const uint8_t *data, size_t len) { - if (len == 0) + if (len == 0 && cmd == CTAPHID_CBOR) return CTAP1_ERR_INVALID_LEN; - DEBUG_DATA(data+1,len-1); + if (len > 0) + DEBUG_DATA(data+1,len-1); driver_prepare_response_hid(); if (cmd == CTAPHID_CBOR) { if (data[0] == CTAP_MAKE_CREDENTIAL) @@ -74,7 +75,7 @@ int cbor_parse(uint8_t cmd, const uint8_t *data, size_t len) { else if (cmd == CTAP_VENDOR_CBOR) { return cbor_vendor(data, len); } - return CTAP2_ERR_INVALID_CBOR; + return CTAP1_ERR_INVALID_CMD; } #ifndef ENABLE_EMULATION