OpenCoverage

strlcpy.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/openbsd-compat/strlcpy.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */-
2-
3/*-
4 * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>-
5 *-
6 * Permission to use, copy, modify, and distribute this software for any-
7 * purpose with or without fee is hereby granted, provided that the above-
8 * copyright notice and this permission notice appear in all copies.-
9 *-
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES-
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF-
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR-
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES-
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN-
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF-
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.-
17 */-
18-
19/* OPENBSD ORIGINAL: lib/libc/string/strlcpy.c */-
20-
21#include "includes.h"-
22#ifndef HAVE_STRLCPY-
23-
24#include <sys/types.h>-
25#include <string.h>-
26-
27/*-
28 * Copy src to string dst of size siz. At most siz-1 characters-
29 * will be copied. Always NUL terminates (unless siz == 0).-
30 * Returns strlen(src); if retval >= siz, truncation occurred.-
31 */-
32size_t-
33strlcpy(char *dst, const char *src, size_t siz)-
34{-
35 char *d = dst;-
36 const char *s = src;-
37 size_t n = siz;-
38-
39 /* Copy as many bytes as will fit */-
40 if (n != 0) {
n != 0Description
TRUEevaluated 7692 times by 7 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
FALSEnever evaluated
0-7692
41 while (--n != 0) {
--n != 0Description
TRUEevaluated 444889 times by 7 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
FALSEevaluated 7565 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
7565-444889
42 if ((*d++ = *s++) == '\0')
(*d++ = *s++) == '\0'Description
TRUEevaluated 127 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_match
  • test_sshkey
  • test_utf8
FALSEevaluated 444762 times by 7 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
127-444762
43 break;
executed 127 times by 5 tests: break;
Executed by:
  • ssh-keygen
  • sshd
  • test_match
  • test_sshkey
  • test_utf8
127
44 }
executed 444762 times by 7 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
444762
45 }
executed 7692 times by 7 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
7692
46-
47 /* Not enough room in dst, add NUL and traverse rest of src */-
48 if (n == 0) {
n == 0Description
TRUEevaluated 7565 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
FALSEevaluated 127 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_match
  • test_sshkey
  • test_utf8
127-7565
49 if (siz != 0)
siz != 0Description
TRUEevaluated 7565 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
FALSEnever evaluated
0-7565
50 *d = '\0'; /* NUL-terminate dst */
executed 7565 times by 5 tests: *d = '\0';
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
7565
51 while (*s++)
*s++Description
TRUEnever evaluated
FALSEevaluated 7565 times by 5 tests
Evaluated by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
0-7565
52 ;
never executed: ;
0
53 }
executed 7565 times by 5 tests: end of block
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_utf8
7565
54-
55 return(s - src - 1); /* count does not include NUL */
executed 7692 times by 7 tests: return(s - src - 1);
Executed by:
  • ssh-keygen
  • sshd
  • test_hostkeys
  • test_kex
  • test_match
  • test_sshkey
  • test_utf8
7692
56}-
57-
58#endif /* !HAVE_STRLCPY */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2