From 38a3178185ac0d755220fac6a1f8166062fb6bb9 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Wed, 15 Feb 2006 15:03:47 +0000 Subject: [PATCH] Fix OBJ_obj2txt() for large OIDs. --- crypto/objects/obj_dat.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c index 9c61829c77..7a95c7795a 100644 --- a/crypto/objects/obj_dat.c +++ b/crypto/objects/obj_dat.c @@ -546,11 +546,19 @@ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) buf_len--; } BUF_strlcpy(buf,bndec,buf_len); - buf += i; + if (i > buf_len) + { + buf += buf_len; + buf_len = 0; + } + else + { + buf+=i; + buf_len-=i; + } } n++; n += i; - buf_len -= i; OPENSSL_free(bndec); } else @@ -560,9 +568,17 @@ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) if (buf && (buf_len > 0)) { BUF_strlcpy(buf,tbuf,buf_len); - buf+=i; + if (i > buf_len) + { + buf += buf_len; + buf_len = 0; + } + else + { + buf+=i; + buf_len-=i; + } } - buf_len-=i; n+=i; l=0; } -- 2.25.1