Coverage Report

Created: 2026-08-31 06:56

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/pupnp/upnp/src/genlib/util/util.c
Line
Count
Source
1
/*******************************************************************************
2
 *
3
 * Copyright (c) 2000-2003 Intel Corporation
4
 * All rights reserved.
5
 * Copyright (c) 2012 France Telecom All rights reserved.
6
 *
7
 * Redistribution and use in source and binary forms, with or without
8
 * modification, are permitted provided that the following conditions are met:
9
 *
10
 * - Redistributions of source code must retain the above copyright notice,
11
 * this list of conditions and the following disclaimer.
12
 * - Redistributions in binary form must reproduce the above copyright notice,
13
 * this list of conditions and the following disclaimer in the documentation
14
 * and/or other materials provided with the distribution.
15
 * - Neither name of Intel Corporation nor the names of its contributors
16
 * may be used to endorse or promote products derived from this software
17
 * without specific prior written permission.
18
 *
19
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR
23
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
27
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
 *
31
 ******************************************************************************/
32
33
/*!
34
 * \file
35
 *
36
 * Purpose: This file contains functions for copying strings based on
37
 * different options.
38
 */
39
40
#include "upnp.h"
41
#include "upnputil.h"
42
43
#include <string.h>
44
45
#include "posix_overwrites.h" // IWYU pragma: keep
46
47
void linecopy(char dest[LINE_SIZE], const char *src)
48
0
{
49
0
  strncpy(dest, src, LINE_SIZE - (size_t)1);
50
  /* null-terminate if len(src) >= LINE_SIZE. */
51
0
  dest[LINE_SIZE - 1] = '\0';
52
0
}
53
54
void namecopy(char dest[NAME_SIZE], const char *src)
55
0
{
56
0
  strncpy(dest, src, NAME_SIZE - (size_t)1);
57
  /* null-terminate if len(src) >= NAME_SIZE. */
58
0
  dest[NAME_SIZE - 1] = '\0';
59
0
}
60
61
void linecopylen(char dest[LINE_SIZE], const char *src, size_t srclen)
62
0
{
63
0
  size_t len;
64
65
0
  len = srclen < (LINE_SIZE - (size_t)1) ? srclen
66
0
                 : (LINE_SIZE - (size_t)1);
67
0
  strncpy(dest, src, len);
68
0
  dest[len] = '\0';
69
0
}