Commit ba740700 authored by Mike Aizatsky's avatar Mike Aizatsky Committed by Kurt Roeckx
Browse files

[fuzzers] do not fail fuzzers with empty input



Reviewed-by: default avatarKurt Roeckx <kurt@roeckx.be>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>

GH: #1788
parent e4d94269
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -22,8 +22,12 @@ int FuzzerInitialize(int *argc, char ***argv) {

int FuzzerTestOneInput(const uint8_t *buf, size_t len) {
    CMS_ContentInfo *i;
    BIO *in = BIO_new(BIO_s_mem());
    BIO *in;
    if (!len) {
        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);
+9 −3
Original line number Diff line number Diff line
@@ -217,6 +217,12 @@ int FuzzerInitialize(int *argc, char ***argv) {
}

int FuzzerTestOneInput(const uint8_t *buf, size_t len) {
    SSL *server;
    BIO *in;
    BIO *out;
    if (!len) {
        return 0;
    }
    /* TODO: make this work for OpenSSL. There's a PREDICT define that may do
     * the job.
     * TODO: use the ossltest engine (optionally?) to disable crypto checks.
@@ -224,9 +230,9 @@ int FuzzerTestOneInput(const uint8_t *buf, size_t len) {
     */

    /* This only fuzzes the initial flow from the client so far. */
    SSL *server = SSL_new(ctx);
    BIO *in = BIO_new(BIO_s_mem());
    BIO *out = BIO_new(BIO_s_mem());
    server = SSL_new(ctx);
    in = BIO_new(BIO_s_mem());
    out = BIO_new(BIO_s_mem());
    SSL_set_bio(server, in, out);
    SSL_set_accept_state(server);
    OPENSSL_assert((size_t)BIO_write(in, buf, len) == len);