From 80a86e741cfcf2c764ca9a779f1828410d54f966 Mon Sep 17 00:00:00 2001 From: Antiklesys Date: Fri, 20 Jun 2025 01:31:47 +0800 Subject: [PATCH 1/2] Fixed length check for snmp responses Fixed length check for snmp responses from the sam --- armsrc/sam_picopass.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/armsrc/sam_picopass.c b/armsrc/sam_picopass.c index fa040288f..ad801b1f4 100644 --- a/armsrc/sam_picopass.c +++ b/armsrc/sam_picopass.c @@ -238,7 +238,12 @@ static int sam_send_request_iso15(const uint8_t *const request, const uint8_t re } } - *response_len = sam_rx_buf[5 + 1] + 2; + if (sam_rx_buf[6] == 0x81 && sam_rx_buf[8] == 0x8a && sam_rx_buf[9] == 0x81 ){ //check if the response is an SNMP message + *response_len = sam_rx_buf[6 + 1] + 3; + }else{ //if not, use the old logic + *response_len = sam_rx_buf[5 + 1] + 2; + } + memcpy(response, sam_rx_buf + 5, *response_len); goto out; From 2ed0c9a3013cd11d71a480769c42e351599f0ec3 Mon Sep 17 00:00:00 2001 From: Antiklesys Date: Fri, 20 Jun 2025 01:35:13 +0800 Subject: [PATCH 2/2] Update sam_picopass.c Signed-off-by: Antiklesys --- armsrc/sam_picopass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/armsrc/sam_picopass.c b/armsrc/sam_picopass.c index ad801b1f4..1504f4104 100644 --- a/armsrc/sam_picopass.c +++ b/armsrc/sam_picopass.c @@ -239,7 +239,7 @@ static int sam_send_request_iso15(const uint8_t *const request, const uint8_t re } if (sam_rx_buf[6] == 0x81 && sam_rx_buf[8] == 0x8a && sam_rx_buf[9] == 0x81 ){ //check if the response is an SNMP message - *response_len = sam_rx_buf[6 + 1] + 3; + *response_len = sam_rx_buf[5 + 2] + 3; }else{ //if not, use the old logic *response_len = sam_rx_buf[5 + 1] + 2; }