Coverage Report

Created: 2024-02-05 19:20

/libfido2/src/types.c
Line
Count
Source
1
/*
2
 * Copyright (c) 2018-2022 Yubico AB. All rights reserved.
3
 * Use of this source code is governed by a BSD-style
4
 * license that can be found in the LICENSE file.
5
 * SPDX-License-Identifier: BSD-2-Clause
6
 */
7
8
#include "fido.h"
9
10
void
11
fido_str_array_free(fido_str_array_t *sa)
12
4.00M
{
13
6.05M
        for (size_t i = 0; i < sa->len; i++)
14
2.05M
                free(sa->ptr[i]);
15
16
4.00M
        free(sa->ptr);
17
4.00M
        sa->ptr = NULL;
18
4.00M
        sa->len = 0;
19
4.00M
}
20
21
void
22
fido_opt_array_free(fido_opt_array_t *oa)
23
1.32M
{
24
2.23M
        for (size_t i = 0; i < oa->len; i++)
25
911k
                free(oa->name[i]);
26
27
1.32M
        free(oa->name);
28
1.32M
        free(oa->value);
29
1.32M
        oa->name = NULL;
30
1.32M
        oa->value = NULL;
31
1.32M
        oa->len = 0;
32
1.32M
}
33
34
void
35
fido_byte_array_free(fido_byte_array_t *ba)
36
1.32M
{
37
1.32M
        free(ba->ptr);
38
39
1.32M
        ba->ptr = NULL;
40
1.32M
        ba->len = 0;
41
1.32M
}
42
43
void
44
fido_algo_free(fido_algo_t *a)
45
279k
{
46
279k
        free(a->type);
47
279k
        a->type = NULL;
48
279k
        a->cose = 0;
49
279k
}
50
51
void
52
fido_algo_array_free(fido_algo_array_t *aa)
53
1.32M
{
54
1.59M
        for (size_t i = 0; i < aa->len; i++)
55
274k
                fido_algo_free(&aa->ptr[i]);
56
57
1.32M
        free(aa->ptr);
58
1.32M
        aa->ptr = NULL;
59
1.32M
        aa->len = 0;
60
1.32M
}
61
62
void
63
fido_cert_array_free(fido_cert_array_t *ca)
64
1.32M
{
65
1.38M
        for (size_t i = 0; i < ca->len; i++)
66
60.1k
                free(ca->name[i]);
67
68
1.32M
        free(ca->name);
69
1.32M
        free(ca->value);
70
1.32M
        ca->name = NULL;
71
1.32M
        ca->value = NULL;
72
1.32M
        ca->len = 0;
73
1.32M
}
74
75
int
76
fido_str_array_pack(fido_str_array_t *sa, const char * const *v, size_t n)
77
36.9k
{
78
36.9k
        if ((sa->ptr = calloc(n, sizeof(char *))) == NULL) {
79
161
                fido_log_debug("%s: calloc", __func__);
80
161
                return -1;
81
161
        }
82
1.11M
        for (size_t i = 0; i < n; i++) {
83
1.08M
                if ((sa->ptr[i] = strdup(v[i])) == NULL) {
84
2.14k
                        fido_log_debug("%s: strdup", __func__);
85
2.14k
                        return -1;
86
2.14k
                }
87
1.08M
                sa->len++;
88
1.08M
        }
89
90
34.6k
        return 0;
91
36.7k
}