OpenCoverage

a_i2d_fp.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/a_i2d_fp.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/buffer.h>-
13#include <openssl/asn1.h>-
14-
15#ifndef NO_OLD_ASN1-
16-
17# ifndef OPENSSL_NO_STDIO-
18int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x)-
19{-
20 BIO *b;-
21 int ret;-
22-
23 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
24 ASN1err(ASN1_F_ASN1_I2D_FP, ERR_R_BUF_LIB);-
25 return 0;
never executed: return 0;
0
26 }-
27 BIO_set_fp(b, out, BIO_NOCLOSE);-
28 ret = ASN1_i2d_bio(i2d, b, x);-
29 BIO_free(b);-
30 return ret;
never executed: return ret;
0
31}-
32# endif-
33-
34int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x)-
35{-
36 char *b;-
37 unsigned char *p;-
38 int i, j = 0, n, ret = 1;-
39-
40 n = i2d(x, NULL);-
41 if (n <= 0)
n <= 0Description
TRUEnever evaluated
FALSEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-29
42 return 0;
never executed: return 0;
0
43-
44 b = OPENSSL_malloc(n);-
45 if (b == NULL) {
b == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-29
46 ASN1err(ASN1_F_ASN1_I2D_BIO, ERR_R_MALLOC_FAILURE);-
47 return 0;
never executed: return 0;
0
48 }-
49-
50 p = (unsigned char *)b;-
51 i2d(x, &p);-
52-
53 for (;;) {-
54 i = BIO_write(out, &(b[j]), n);-
55 if (i == n)
i == nDescription
TRUEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-29
56 break;
executed 29 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
29
57 if (i <= 0) {
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
58 ret = 0;-
59 break;
never executed: break;
0
60 }-
61 j += i;-
62 n -= i;-
63 }
never executed: end of block
0
64 OPENSSL_free(b);-
65 return ret;
executed 29 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
29
66}-
67-
68#endif-
69-
70#ifndef OPENSSL_NO_STDIO-
71int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x)-
72{-
73 BIO *b;-
74 int ret;-
75-
76 if ((b = BIO_new(BIO_s_file())) == NULL) {
(b = BIO_new(B...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
77 ASN1err(ASN1_F_ASN1_ITEM_I2D_FP, ERR_R_BUF_LIB);-
78 return 0;
never executed: return 0;
0
79 }-
80 BIO_set_fp(b, out, BIO_NOCLOSE);-
81 ret = ASN1_item_i2d_bio(it, b, x);-
82 BIO_free(b);-
83 return ret;
never executed: return ret;
0
84}-
85#endif-
86-
87int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x)-
88{-
89 unsigned char *b = NULL;-
90 int i, j = 0, n, ret = 1;-
91-
92 n = ASN1_item_i2d(x, &b, it);-
93 if (b == NULL) {
b == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 333 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-333
94 ASN1err(ASN1_F_ASN1_ITEM_I2D_BIO, ERR_R_MALLOC_FAILURE);-
95 return 0;
never executed: return 0;
0
96 }-
97-
98 for (;;) {-
99 i = BIO_write(out, &(b[j]), n);-
100 if (i == n)
i == nDescription
TRUEevaluated 333 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-333
101 break;
executed 333 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
333
102 if (i <= 0) {
i <= 0Description
TRUEnever evaluated
FALSEnever evaluated
0
103 ret = 0;-
104 break;
never executed: break;
0
105 }-
106 j += i;-
107 n -= i;-
108 }
never executed: end of block
0
109 OPENSSL_free(b);-
110 return ret;
executed 333 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
333
111}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2