X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=fuzz%2Fcms.c;h=d464429a540792d4e6068bb0db8d15472b46e590;hp=71d8b6953c998c6d339b8d46c0ee5ecf3db13a91;hb=e5d4233fbd07eac52227c7ec5f479a46f15914bf;hpb=f3e911d5ed16db6a129306675e20e51d1ee81e1a diff --git a/fuzz/cms.c b/fuzz/cms.c index 71d8b6953c..d464429a54 100644 --- a/fuzz/cms.c +++ b/fuzz/cms.c @@ -1,7 +1,7 @@ /* * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. * - * Licensed under the OpenSSL licenses, (the "License"); + * Licensed under the Apache License 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * https://www.openssl.org/source/license.html @@ -14,25 +14,42 @@ #include #include +#include #include "fuzzer.h" int FuzzerInitialize(int *argc, char ***argv) { + OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); + ERR_clear_error(); + CRYPTO_free_ex_index(0, -1); return 1; } int FuzzerTestOneInput(const uint8_t *buf, size_t len) { - CMS_ContentInfo *i; + CMS_ContentInfo *cms; BIO *in; - if (!len) { + + if (len == 0) return 0; - } in = BIO_new(BIO_s_mem()); OPENSSL_assert((size_t)BIO_write(in, buf, len) == len); - i = d2i_CMS_bio(in, NULL); - CMS_ContentInfo_free(i); + cms = d2i_CMS_bio(in, NULL); + if (cms != NULL) { + BIO *out = BIO_new(BIO_s_null()); + + i2d_CMS_bio(out, cms); + BIO_free(out); + CMS_ContentInfo_free(cms); + } + BIO_free(in); + ERR_clear_error(); + return 0; } + +void FuzzerCleanup(void) +{ +}