Coverage Report

Created: 2026-04-08 06:32

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
3.56M
{
13
4.64M
        for (size_t i = 0; i < sa->len; i++)
14
1.08M
                free(sa->ptr[i]);
15
16
3.56M
        free(sa->ptr);
17
3.56M
        sa->ptr = NULL;
18
3.56M
        sa->len = 0;
19
3.56M
}
20
21
void
22
fido_opt_array_free(fido_opt_array_t *oa)
23
709k
{
24
1.29M
        for (size_t i = 0; i < oa->len; i++)
25
582k
                free(oa->name[i]);
26
27
709k
        free(oa->name);
28
709k
        free(oa->value);
29
709k
        oa->name = NULL;
30
709k
        oa->value = NULL;
31
709k
        oa->len = 0;
32
709k
}
33
34
void
35
fido_byte_array_free(fido_byte_array_t *ba)
36
1.41M
{
37
1.41M
        free(ba->ptr);
38
39
1.41M
        ba->ptr = NULL;
40
1.41M
        ba->len = 0;
41
1.41M
}
42
43
void
44
fido_algo_free(fido_algo_t *a)
45
151k
{
46
151k
        free(a->type);
47
151k
        a->type = NULL;
48
151k
        a->cose = 0;
49
151k
}
50
51
void
52
fido_algo_array_free(fido_algo_array_t *aa)
53
709k
{
54
858k
        for (size_t i = 0; i < aa->len; i++)
55
148k
                fido_algo_free(&aa->ptr[i]);
56
57
709k
        free(aa->ptr);
58
709k
        aa->ptr = NULL;
59
709k
        aa->len = 0;
60
709k
}
61
62
void
63
fido_cert_array_free(fido_cert_array_t *ca)
64
709k
{
65
727k
        for (size_t i = 0; i < ca->len; i++)
66
18.3k
                free(ca->name[i]);
67
68
709k
        free(ca->name);
69
709k
        free(ca->value);
70
709k
        ca->name = NULL;
71
709k
        ca->value = NULL;
72
709k
        ca->len = 0;
73
709k
}
74
75
int
76
fido_str_array_pack(fido_str_array_t *sa, const char * const *v, size_t n)
77
13.5k
{
78
13.5k
        if ((sa->ptr = calloc(n, sizeof(char *))) == NULL) {
79
20
                fido_log_debug("%s: calloc", __func__);
80
20
                return -1;
81
20
        }
82
404k
        for (size_t i = 0; i < n; i++) {
83
391k
                if ((sa->ptr[i] = strdup(v[i])) == NULL) {
84
731
                        fido_log_debug("%s: strdup", __func__);
85
731
                        return -1;
86
731
                }
87
390k
                sa->len++;
88
390k
        }
89
90
12.7k
        return 0;
91
13.5k
}