OpenCoverage

strlcpy.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/compat/strlcpy.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: strlcpy.c,v 1.15 2016/10/16 17:37:39 dtucker Exp $ */-
2-
3/*-
4 * Copyright (c) 1998, 2015 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#include <sys/types.h>-
20#include <string.h>-
21-
22/*-
23 * Copy string src to buffer dst of size dsize. At most dsize-1-
24 * chars will be copied. Always NUL terminates (unless dsize == 0).-
25 * Returns strlen(src); if retval >= dsize, truncation occurred.-
26 */-
27size_t-
28strlcpy(char *dst, const char *src, size_t dsize)-
29{-
30 const char *osrc = src;-
31 size_t nleft = dsize;-
32-
33 /* Copy as many bytes as will fit. */-
34 if (nleft != 0) {
nleft != 0Description
TRUEevaluated 37396 times by 32 tests
Evaluated by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
FALSEnever evaluated
0-37396
35 while (--nleft != 0) {
--nleft != 0Description
TRUEevaluated 831489 times by 32 tests
Evaluated by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
FALSEevaluated 5510 times by 31 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
5510-831489
36 if ((*dst++ = *src++) == '\0')
(*dst++ = *src++) == '\0'Description
TRUEevaluated 31886 times by 32 tests
Evaluated by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
FALSEevaluated 799603 times by 32 tests
Evaluated by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
31886-799603
37 break;
executed 31886 times by 32 tests: break;
Executed by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
31886
38 }
executed 799603 times by 32 tests: end of block
Executed by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
799603
39 }
executed 37396 times by 32 tests: end of block
Executed by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
37396
40-
41 /* Not enough room in dst, add NUL and traverse rest of src. */-
42 if (nleft == 0) {
nleft == 0Description
TRUEevaluated 5510 times by 31 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
FALSEevaluated 31886 times by 32 tests
Evaluated by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
5510-31886
43 if (dsize != 0)
dsize != 0Description
TRUEevaluated 5510 times by 31 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
FALSEnever evaluated
0-5510
44 *dst = '\0'; /* NUL-terminate dst */
executed 5510 times by 31 tests: *dst = '\0';
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
5510
45 while (*src++)
*src++Description
TRUEevaluated 33930 times by 31 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
FALSEevaluated 5510 times by 31 tests
Evaluated by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
5510-33930
46 ;
executed 33930 times by 31 tests: ;
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
33930
47 }
executed 5510 times by 31 tests: end of block
Executed by:
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ssl_versions
  • ...
5510
48-
49 return(src - osrc - 1); /* count does not include NUL */
executed 37396 times by 32 tests: return(src - osrc - 1);
Executed by:
  • aeadtest
  • asn1test
  • base64test
  • bnaddsub
  • bntest
  • cipher_list
  • cipherstest
  • clienttest
  • configtest
  • dhtest
  • dsatest
  • ecdhtest
  • ecdsatest
  • ectest
  • enginetest
  • evptest
  • exptest
  • gost2814789t
  • keypairtest
  • libcrypto.so.44.0.1
  • mont
  • pbkdf2
  • pkcs7test
  • rsa_test
  • servertest
  • ...
37396
50}-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2