OpenCoverage

a_dup.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/a_dup.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include <stdio.h>-
11#include "internal/cryptlib.h"-
12#include <openssl/asn1.h>-
13-
14#ifndef NO_OLD_ASN1-
15-
16void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x)-
17{-
18 unsigned char *b, *p;-
19 const unsigned char *p2;-
20 int i;-
21 char *ret;-
22-
23 if (x == NULL)
x == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
24 return NULL;
never executed: return ((void *)0) ;
0
25-
26 i = i2d(x, NULL);-
27 b = OPENSSL_malloc(i + 10);-
28 if (b == NULL) {
b == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
29 ASN1err(ASN1_F_ASN1_DUP, ERR_R_MALLOC_FAILURE);-
30 return NULL;
never executed: return ((void *)0) ;
0
31 }-
32 p = b;-
33 i = i2d(x, &p);-
34 p2 = b;-
35 ret = d2i(NULL, &p2, i);-
36 OPENSSL_free(b);-
37 return ret;
never executed: return ret;
0
38}-
39-
40#endif-
41-
42/*-
43 * ASN1_ITEM version of dup: this follows the model above except we don't-
44 * need to allocate the buffer. At some point this could be rewritten to-
45 * directly dup the underlying structure instead of doing and encode and-
46 * decode.-
47 */-
48-
49void *ASN1_item_dup(const ASN1_ITEM *it, void *x)-
50{-
51 unsigned char *b = NULL;-
52 const unsigned char *p;-
53 long i;-
54 void *ret;-
55-
56 if (x == NULL)
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 27082 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-27082
57 return NULL;
never executed: return ((void *)0) ;
0
58-
59 i = ASN1_item_i2d(x, &b, it);-
60 if (b == NULL) {
b == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 27082 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-27082
61 ASN1err(ASN1_F_ASN1_ITEM_DUP, ERR_R_MALLOC_FAILURE);-
62 return NULL;
never executed: return ((void *)0) ;
0
63 }-
64 p = b;-
65 ret = ASN1_item_d2i(NULL, &p, i, it);-
66 OPENSSL_free(b);-
67 return ret;
executed 27082 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
27082
68}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2