From 263eb5774900e1c5d12f078c011ef797cac69fee Mon Sep 17 00:00:00 2001 From: Ave Date: Sat, 19 Dec 2020 16:14:27 +0300 Subject: [PATCH] emrtd: fixes for some belgian passports --- client/src/cmdhfemrtd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/src/cmdhfemrtd.c b/client/src/cmdhfemrtd.c index 14abc8c90..827faa4e0 100644 --- a/client/src/cmdhfemrtd.c +++ b/client/src/cmdhfemrtd.c @@ -1105,6 +1105,7 @@ static int emrtd_mrz_determine_length(char *mrz, int offset, int max_length) { } static int emrtd_mrz_determine_separator(char *mrz, int offset, int max_length) { + // Note: this function does not account for len=0 int i; for (i = max_length - 1; i > 0; i--) { if (mrz[offset + i] == '<' && mrz[offset + i + 1] == '<') { @@ -1146,6 +1147,9 @@ static void emrtd_print_document_number(char *mrz, int offset) { } static void emrtd_print_name(char *mrz, int offset, int max_length, bool localized) { + if (max_length == 0) { + return; + } char final_name[100] = { 0x00 }; int namelen = emrtd_mrz_determine_length(mrz, offset, max_length); int sep = emrtd_mrz_determine_separator(mrz, offset, namelen);