1*e0c4386eSCy Schubert /* 2*e0c4386eSCy Schubert * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. 3*e0c4386eSCy Schubert * 4*e0c4386eSCy Schubert * Licensed under the Apache License 2.0 (the "License"); 5*e0c4386eSCy Schubert * you may not use this file except in compliance with the License. 6*e0c4386eSCy Schubert * You may obtain a copy of the License at 7*e0c4386eSCy Schubert * https://www.openssl.org/source/license.html 8*e0c4386eSCy Schubert * or in the file LICENSE in the source distribution. 9*e0c4386eSCy Schubert */ 10*e0c4386eSCy Schubert 11*e0c4386eSCy Schubert /* 12*e0c4386eSCy Schubert * Test configuration parsing. 13*e0c4386eSCy Schubert */ 14*e0c4386eSCy Schubert 15*e0c4386eSCy Schubert #include <openssl/conf.h> 16*e0c4386eSCy Schubert #include <openssl/err.h> 17*e0c4386eSCy Schubert #include "fuzzer.h" 18*e0c4386eSCy Schubert FuzzerInitialize(int * argc,char *** argv)19*e0c4386eSCy Schubertint FuzzerInitialize(int *argc, char ***argv) 20*e0c4386eSCy Schubert { 21*e0c4386eSCy Schubert OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); 22*e0c4386eSCy Schubert ERR_clear_error(); 23*e0c4386eSCy Schubert return 1; 24*e0c4386eSCy Schubert } 25*e0c4386eSCy Schubert FuzzerTestOneInput(const uint8_t * buf,size_t len)26*e0c4386eSCy Schubertint FuzzerTestOneInput(const uint8_t *buf, size_t len) 27*e0c4386eSCy Schubert { 28*e0c4386eSCy Schubert CONF *conf; 29*e0c4386eSCy Schubert BIO *in; 30*e0c4386eSCy Schubert long eline; 31*e0c4386eSCy Schubert 32*e0c4386eSCy Schubert if (len == 0) 33*e0c4386eSCy Schubert return 0; 34*e0c4386eSCy Schubert 35*e0c4386eSCy Schubert conf = NCONF_new(NULL); 36*e0c4386eSCy Schubert in = BIO_new(BIO_s_mem()); 37*e0c4386eSCy Schubert OPENSSL_assert((size_t)BIO_write(in, buf, len) == len); 38*e0c4386eSCy Schubert NCONF_load_bio(conf, in, &eline); 39*e0c4386eSCy Schubert NCONF_free(conf); 40*e0c4386eSCy Schubert BIO_free(in); 41*e0c4386eSCy Schubert ERR_clear_error(); 42*e0c4386eSCy Schubert 43*e0c4386eSCy Schubert return 0; 44*e0c4386eSCy Schubert } 45*e0c4386eSCy Schubert FuzzerCleanup(void)46*e0c4386eSCy Schubertvoid FuzzerCleanup(void) 47*e0c4386eSCy Schubert { 48*e0c4386eSCy Schubert } 49