replace manual alloction math and srlcats with asprintf Change-Id: I94077581037372ea658e60b86b05fa977e1c3ac6 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/74868 Commit-Queue: Bob Beck <bbe@google.com> Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/x509/v3_info.cc b/crypto/x509/v3_info.cc index ca52d01..79a9194 100644 --- a/crypto/x509/v3_info.cc +++ b/crypto/x509/v3_info.cc
@@ -80,7 +80,6 @@ const AUTHORITY_INFO_ACCESS *ainfo = reinterpret_cast<const AUTHORITY_INFO_ACCESS *>(ext); ACCESS_DESCRIPTION *desc; - int name_len; char objtmp[80], *name; CONF_VALUE *vtmp; STACK_OF(CONF_VALUE) *tret = ret; @@ -97,14 +96,9 @@ vtmp = sk_CONF_VALUE_value(tret, i); i2t_ASN1_OBJECT(objtmp, sizeof objtmp, desc->method); - name_len = strlen(objtmp) + 3 + strlen(vtmp->name) + 1; - name = reinterpret_cast<char *>(OPENSSL_malloc(name_len)); - if (name == NULL) { + if (OPENSSL_asprintf(&name, "%s - %s", objtmp, vtmp->name) == -1) { goto err; } - OPENSSL_strlcpy(name, objtmp, name_len); - OPENSSL_strlcat(name, " - ", name_len); - OPENSSL_strlcat(name, vtmp->name, name_len); OPENSSL_free(vtmp->name); vtmp->name = name; }