From: Dr. Stephen Henson Date: Wed, 15 Feb 2006 15:04:42 +0000 (+0000) Subject: Fix from stable branch. X-Git-Tag: OpenSSL_0_9_8k^2~1551 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=9c339a722713740cc3de3c618398a477a0b56503;p=oweals%2Fopenssl.git Fix from stable branch. --- 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; }