/src/openssl32/fuzz/smime.c
Line | Count | Source (jump to first uncovered line) |
1 | | /* |
2 | | * Copyright 2023 The OpenSSL Project Authors. All Rights Reserved. |
3 | | * |
4 | | * Licensed under the Apache License 2.0 (the "License"); |
5 | | * you may not use this file except in compliance with the License. |
6 | | * You may obtain a copy of the License at |
7 | | * https://www.openssl.org/source/license.html |
8 | | * or in the file LICENSE in the source distribution. |
9 | | */ |
10 | | |
11 | | #include "fuzzer.h" |
12 | | #include <openssl/err.h> |
13 | | #include <openssl/pkcs7.h> |
14 | | #include <openssl/x509.h> |
15 | | #include <stdio.h> |
16 | | |
17 | | int FuzzerInitialize(int *argc, char ***argv) |
18 | 108 | { |
19 | 108 | return 1; |
20 | 108 | } |
21 | | |
22 | | int FuzzerTestOneInput(const uint8_t *buf, size_t len) |
23 | 10.0k | { |
24 | 10.0k | BIO *b = BIO_new_mem_buf(buf, len); |
25 | 10.0k | PKCS7 *p7 = SMIME_read_PKCS7(b, NULL); |
26 | | |
27 | 10.0k | if (p7 != NULL) { |
28 | 399 | STACK_OF(PKCS7_SIGNER_INFO) *p7si = PKCS7_get_signer_info(p7); |
29 | 399 | int i; |
30 | | |
31 | 494 | for (i = 0; i < sk_PKCS7_SIGNER_INFO_num(p7si); i++) { |
32 | 95 | STACK_OF(X509_ALGOR) *algs; |
33 | | |
34 | 95 | PKCS7_cert_from_signer_info(p7, |
35 | 95 | sk_PKCS7_SIGNER_INFO_value(p7si, i)); |
36 | 95 | algs = PKCS7_get_smimecap(sk_PKCS7_SIGNER_INFO_value(p7si, i)); |
37 | 95 | sk_X509_ALGOR_pop_free(algs, X509_ALGOR_free); |
38 | 95 | } |
39 | 399 | PKCS7_free(p7); |
40 | 399 | } |
41 | | |
42 | 10.0k | BIO_free(b); |
43 | 10.0k | ERR_clear_error(); |
44 | 10.0k | return 0; |
45 | 10.0k | } |
46 | | |
47 | | void FuzzerCleanup(void) |
48 | 0 | { |
49 | 0 | } |