Skip to content

Commit c27d651

Browse files
committed
wire: differentiate between invalid cbor and malformed cbor errors
1 parent 211012b commit c27d651

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

main/wire.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ static void handle_data_impl(uint8_t* full_data_in, size_t* read_ptr, bool rejec
130130
if (!rpc_request_valid(&ctx.value)) {
131131
// bad message - expect all inputs to be cbor with a root map with an id and a method strings keys values
132132
JADE_LOGW("Invalid request, length %u", msg_len);
133-
SEND_REJECT_MSG(CBOR_RPC_INVALID_REQUEST, "Invalid RPC Request message", msg_len);
133+
SEND_REJECT_MSG(CBOR_RPC_INVALID_REQUEST, "Invalid RPC Request message (malformed)", msg_len);
134134
} else if (handleImmediateMessage(&ctx)) {
135135
JADE_LOGI("Message handled, not passing to main task");
136136
idletimer_register_activity(false);

test_jade.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ def test_bad_message(jade):
712712
assert 'result' not in reply
713713
error = reply['error']
714714
assert error['code'] == JadeError.INVALID_REQUEST
715-
assert error['message'] == 'Invalid RPC Request message'
715+
assert error['message'].startswith('Invalid RPC Request message')
716716
assert int(error['data']) == len(msgbytes)
717717
assert 'result' not in reply
718718

@@ -743,7 +743,7 @@ def test_very_bad_message(jade):
743743
# Assert bad message response
744744
error = reply['error']
745745
assert error['code'] == JadeError.INVALID_REQUEST
746-
assert error['message'] == 'Invalid RPC Request message'
746+
assert error['message'].startswith('Invalid RPC Request message')
747747
bad_bytes += int(error['data'])
748748

749749
assert bad_bytes == len(badmsg)
@@ -779,7 +779,7 @@ def test_random_bytes(jade):
779779
reply = jade.read_response()
780780
error = reply['error']
781781
assert error['code'] == JadeError.INVALID_REQUEST
782-
assert error['message'] == 'Invalid RPC Request message'
782+
assert error['message'].startswith('Invalid RPC Request message')
783783
nreceived += int(error['data'])
784784

785785
assert nreceived == nsent
@@ -832,7 +832,7 @@ def test_too_much_input(jade, has_psram):
832832
reply = jade.read_response()
833833
error = reply['error']
834834
assert error['code'] == JadeError.INVALID_REQUEST
835-
assert error['message'] == 'Invalid RPC Request message'
835+
assert error['message'].startswith('Invalid RPC Request message')
836836
assert int(error['data']) == expected_buffer_size
837837

838838
# After a short pause send a good message
@@ -849,7 +849,7 @@ def test_too_much_input(jade, has_psram):
849849
reply = jade.read_response()
850850
error = reply['error']
851851
assert error['code'] == JadeError.INVALID_REQUEST
852-
assert error['message'] == 'Invalid RPC Request message'
852+
assert error['message'].startswith('Invalid RPC Request message')
853853
bad_bytes += int(error['data'])
854854

855855
assert bad_bytes == expected_overflow_len

0 commit comments

Comments
 (0)