Also re-serialize X509 objects in fuzz/cert.cc. This is a fairly common operation on an X509. Change-Id: I1820f20b555f75c98ab7e3283b5530bc1c200e2a Reviewed-on: https://boringssl-review.googlesource.com/7611 Reviewed-by: Steven Valdez <svaldez@google.com> Reviewed-by: David Benjamin <davidben@google.com>
diff --git a/fuzz/cert.cc b/fuzz/cert.cc index 4078c0e..e813ed5 100644 --- a/fuzz/cert.cc +++ b/fuzz/cert.cc
@@ -1,11 +1,17 @@ +#include <openssl/mem.h> #include <openssl/x509.h> extern "C" int LLVMFuzzerTestOneInput(uint8_t *buf, size_t len) { const uint8_t *bufp = buf; X509 *x509 = d2i_X509(NULL, &bufp, len); if (x509 != NULL) { - /* Also extract the public key. */ + /* Extract the public key. */ EVP_PKEY_free(X509_get_pubkey(x509)); + + /* Reserialize the structure. */ + uint8_t *der = NULL; + i2d_X509(x509, &der); + OPENSSL_free(der); } X509_free(x509); return 0;