Coverage Report

Created: 2025-10-04 18:33

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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
1.09M
{
13
1.48M
        for (size_t i = 0; i < sa->len; i++)
14
387k
                free(sa->ptr[i]);
15
16
1.09M
        free(sa->ptr);
17
1.09M
        sa->ptr = NULL;
18
1.09M
        sa->len = 0;
19
1.09M
}
20
21
void
22
fido_opt_array_free(fido_opt_array_t *oa)
23
364k
{
24
576k
        for (size_t i = 0; i < oa->len; i++)
25
212k
                free(oa->name[i]);
26
27
364k
        free(oa->name);
28
364k
        free(oa->value);
29
364k
        oa->name = NULL;
30
364k
        oa->value = NULL;
31
364k
        oa->len = 0;
32
364k
}
33
34
void
35
fido_byte_array_free(fido_byte_array_t *ba)
36
364k
{
37
364k
        free(ba->ptr);
38
39
364k
        ba->ptr = NULL;
40
364k
        ba->len = 0;
41
364k
}
42
43
void
44
fido_algo_free(fido_algo_t *a)
45
66.5k
{
46
66.5k
        free(a->type);
47
66.5k
        a->type = NULL;
48
66.5k
        a->cose = 0;
49
66.5k
}
50
51
void
52
fido_algo_array_free(fido_algo_array_t *aa)
53
364k
{
54
428k
        for (size_t i = 0; i < aa->len; i++)
55
64.4k
                fido_algo_free(&aa->ptr[i]);
56
57
364k
        free(aa->ptr);
58
364k
        aa->ptr = NULL;
59
364k
        aa->len = 0;
60
364k
}
61
62
void
63
fido_cert_array_free(fido_cert_array_t *ca)
64
364k
{
65
367k
        for (size_t i = 0; i < ca->len; i++)
66
3.40k
                free(ca->name[i]);
67
68
364k
        free(ca->name);
69
364k
        free(ca->value);
70
364k
        ca->name = NULL;
71
364k
        ca->value = NULL;
72
364k
        ca->len = 0;
73
364k
}
74
75
int
76
fido_str_array_pack(fido_str_array_t *sa, const char * const *v, size_t n)
77
5.56k
{
78
5.56k
        if ((sa->ptr = calloc(n, sizeof(char *))) == NULL) {
79
11
                fido_log_debug("%s: calloc", __func__);
80
11
                return -1;
81
11
        }
82
161k
        for (size_t i = 0; i < n; i++) {
83
156k
                if ((sa->ptr[i] = strdup(v[i])) == NULL) {
84
251
                        fido_log_debug("%s: strdup", __func__);
85
251
                        return -1;
86
251
                }
87
156k
                sa->len++;
88
156k
        }
89
90
5.30k
        return 0;
91
5.55k
}