From 5a30c7cbdc07f84262ea0fcb45aa9f5f63e477cc Mon Sep 17 00:00:00 2001 From: Pol Henarejos Date: Tue, 24 May 2022 14:27:49 +0200 Subject: [PATCH] format_tlv_len() accepts NULL argument. In that case, it returns the length of the length in bytes. Signed-off-by: Pol Henarejos --- src/ccid/ccid2040.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/ccid/ccid2040.c b/src/ccid/ccid2040.c index 59e46bc..76aa668 100644 --- a/src/ccid/ccid2040.c +++ b/src/ccid/ccid2040.c @@ -1495,18 +1495,23 @@ void led_off_all() { int format_tlv_len(size_t len, uint8_t *out) { if (len < 128) { - *out = len; + if (out) + *out = len; return 1; } else if (len < 256) { - *out++ = 0x81; - *out++ = len; + if (out) { + *out++ = 0x81; + *out++ = len; + } return 2; } else { - *out++ = 0x82; - *out++ = (len >> 8) & 0xff; - *out++ = len & 0xff; + if (out) { + *out++ = 0x82; + *out++ = (len >> 8) & 0xff; + *out++ = len & 0xff; + } return 3; } return 0;