diff options
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/objects')
| -rw-r--r--[-rwxr-xr-x] | Cryptlib/OpenSSL/crypto/objects/o_names.c | 0 | ||||
| -rw-r--r--[-rwxr-xr-x] | Cryptlib/OpenSSL/crypto/objects/obj_dat.c | 16 | ||||
| -rw-r--r--[-rwxr-xr-x] | Cryptlib/OpenSSL/crypto/objects/obj_err.c | 0 | ||||
| -rw-r--r--[-rwxr-xr-x] | Cryptlib/OpenSSL/crypto/objects/obj_lib.c | 0 |
4 files changed, 9 insertions, 7 deletions
diff --git a/Cryptlib/OpenSSL/crypto/objects/o_names.c b/Cryptlib/OpenSSL/crypto/objects/o_names.c index adb5731f..adb5731f 100755..100644 --- a/Cryptlib/OpenSSL/crypto/objects/o_names.c +++ b/Cryptlib/OpenSSL/crypto/objects/o_names.c diff --git a/Cryptlib/OpenSSL/crypto/objects/obj_dat.c b/Cryptlib/OpenSSL/crypto/objects/obj_dat.c index 760af16d..cf5ba2a1 100755..100644 --- a/Cryptlib/OpenSSL/crypto/objects/obj_dat.c +++ b/Cryptlib/OpenSSL/crypto/objects/obj_dat.c @@ -444,11 +444,12 @@ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) unsigned char *p; char tbuf[DECIMAL_SIZE(i)+DECIMAL_SIZE(l)+2]; - if ((a == NULL) || (a->data == NULL)) { - buf[0]='\0'; - return(0); - } + /* Ensure that, at every state, |buf| is NUL-terminated. */ + if (buf && buf_len > 0) + buf[0] = '\0'; + if ((a == NULL) || (a->data == NULL)) + return(0); if (!no_name && (nid=OBJ_obj2nid(a)) != NID_undef) { @@ -527,9 +528,10 @@ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) i=(int)(l/40); l-=(long)(i*40); } - if (buf && (buf_len > 0)) + if (buf && (buf_len > 1)) { *buf++ = i + '0'; + *buf = '\0'; buf_len--; } n++; @@ -544,9 +546,10 @@ int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name) i = strlen(bndec); if (buf) { - if (buf_len > 0) + if (buf_len > 1) { *buf++ = '.'; + *buf = '\0'; buf_len--; } BUF_strlcpy(buf,bndec,buf_len); @@ -786,4 +789,3 @@ err: OPENSSL_free(buf); return(ok); } - diff --git a/Cryptlib/OpenSSL/crypto/objects/obj_err.c b/Cryptlib/OpenSSL/crypto/objects/obj_err.c index 12b48850..12b48850 100755..100644 --- a/Cryptlib/OpenSSL/crypto/objects/obj_err.c +++ b/Cryptlib/OpenSSL/crypto/objects/obj_err.c diff --git a/Cryptlib/OpenSSL/crypto/objects/obj_lib.c b/Cryptlib/OpenSSL/crypto/objects/obj_lib.c index 706fa0b0..706fa0b0 100755..100644 --- a/Cryptlib/OpenSSL/crypto/objects/obj_lib.c +++ b/Cryptlib/OpenSSL/crypto/objects/obj_lib.c |
