From f163a4e18f9a62bfda07cf5ab93c1091301afeac Mon Sep 17 00:00:00 2001 From: Guido Vranken Date: Mon, 14 Jun 2021 03:55:13 +0200 Subject: [PATCH] Return BUFFER_E from DecodePolicyOID if XSNPRINTF indicates insufficient buffer space --- wolfcrypt/src/asn.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 78c720d7a..88fcafef5 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -8871,8 +8871,10 @@ int DecodePolicyOID(char *out, word32 outSz, const byte *in, word32 inSz) val = in[inIdx++]; w = XSNPRINTF(out, outSz, "%u.%u", val / 40, val % 40); - if (w < 0) + if (w < 0) { + w = BUFFER_E; goto exit; + } outIdx += w; val = 0; @@ -8887,8 +8889,10 @@ int DecodePolicyOID(char *out, word32 outSz, const byte *in, word32 inSz) /* write val as text into out */ val += in[inIdx]; w = XSNPRINTF(out + outIdx, outSz - outIdx, ".%u", val); - if (w < 0 || (word32)w > outSz - outIdx) + if (w < 0 || (word32)w > outSz - outIdx) { + w = BUFFER_E; goto exit; + } outIdx += w; val = 0; }