libcrypto refactoring: make more use of ASN1_STRING_set0()
[openssl.git] / crypto / x509 / x_pubkey.c
index 6c554bc030f60d13a3c83e439792fb3076894a0a..126c2400f6d9f5d1d51da6fefa23f5b2923d5d04 100644 (file)
@@ -980,9 +980,7 @@ int ossl_i2d_X448_PUBKEY(const ECX_KEY *a, unsigned char **pp)
 void X509_PUBKEY_set0_public_key(X509_PUBKEY *pub,
                                  unsigned char *penc, int penclen)
 {
-    OPENSSL_free(pub->public_key->data);
-    pub->public_key->data = penc;
-    pub->public_key->length = penclen;
+    ASN1_STRING_set0(pub->public_key, penc, penclen);
     /* Set number of unused bits to zero */
     pub->public_key->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07);
     pub->public_key->flags |= ASN1_STRING_FLAG_BITS_LEFT;