Commit ae96f56e authored by Andre Maroneze's avatar Andre Maroneze 💬
Browse files

Merge branch 'oscs-contribute/dario/add-intelsafestrlib' into 'master'

[add] Intel Safestringlib, ready for analysis

See merge request !1
parents 14fd0be2 40aec2aa
......@@ -70,6 +70,7 @@ TARGETS=\
papabench \
polarssl \
qlz \
safestringlib \
semver \
solitaire \
tweetnacl-usable \
......
......@@ -141,6 +141,7 @@ when available. We also summarize the license of each directory below.
- `papabench`: GPL
- `polarssl`: GPL
- `qlz`: GPL
- `safestringlib`: MIT
- `semver`: MIT
- `solitaire`: public domain (see `solitaire.c`)
- `tweetnacl-usable`: public domain (see `LICENSE.txt`)
......
# Makefile template for Frama-C/Eva case studies.
# For details and usage information, see the Frama-C User Manual.
### Prologue. Do not modify this block. #######################################
-include path.mk
FRAMAC ?= frama-c
include $(shell $(FRAMAC)-config -scripts)/prologue.mk
###############################################################################
# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
MACHDEP = x86_32
## Preprocessing flags (for -cpp-extra-args)
CPPFLAGS += \
-I../include/ \
-I../safeclib/ \
## General flags
FCFLAGS += \
-add-symbolic-path=.:.. \
-kernel-warn-key typing:implicit-function-declaration=abort \
## Eva-specific flags
EVAFLAGS += \
-eva-precision 3 \
## GUI-only flags
FCGUIFLAGS += \
-add-symbolic-path=.:.. \
## Analysis targets (suffixed with .eva)
TARGETS = intelsafestringlib.eva
### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
intelsafestringlib.parse: $(sort $(wildcard ../safeclib/*.c ../unittests/*.c))
### Epilogue. Do not modify this block. #######################################
include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
###############################################################################
# optional, for OSCS
-include ../../Makefile.common
This diff is collapsed.
[metrics] Eva coverage statistics
=======================
Syntactically reachable functions = 154 (out of 246)
Semantically reached functions = 154
Coverage estimation = 100.0%
[metrics] References to non-analyzed functions
------------------------------------
[metrics] Statements analyzed by Eva
--------------------------
12951 stmts in analyzed functions, 11922 stmts analyzed (92.1%)
check_integer_format: 5 stmts out of 5 (100.0%)
handle_error_1: 3 stmts out of 3 (100.0%)
handle_error_2: 3 stmts out of 3 (100.0%)
handle_error_28: 3 stmts out of 3 (100.0%)
handle_error_29: 3 stmts out of 3 (100.0%)
handle_error_5: 3 stmts out of 3 (100.0%)
handle_error_8: 3 stmts out of 3 (100.0%)
handle_wc_error_41: 3 stmts out of 3 (100.0%)
handle_wc_error_42: 3 stmts out of 3 (100.0%)
handle_wc_error_43: 3 stmts out of 3 (100.0%)
handle_wc_error_44: 3 stmts out of 3 (100.0%)
handle_wc_error_45: 3 stmts out of 3 (100.0%)
ignore_handler_s: 1 stmts out of 1 (100.0%)
mem_prim_move: 93 stmts out of 93 (100.0%)
mem_prim_set: 159 stmts out of 159 (100.0%)
mem_prim_set16: 134 stmts out of 134 (100.0%)
mem_prim_set32: 134 stmts out of 134 (100.0%)
memcpy16_s: 49 stmts out of 49 (100.0%)
memcpy32_s: 49 stmts out of 49 (100.0%)
memcpy_s: 51 stmts out of 51 (100.0%)
memmove16_s: 38 stmts out of 38 (100.0%)
memmove32_s: 38 stmts out of 38 (100.0%)
memmove_s: 38 stmts out of 38 (100.0%)
memzero16_s: 18 stmts out of 18 (100.0%)
memzero32_s: 18 stmts out of 18 (100.0%)
memzero_s: 18 stmts out of 18 (100.0%)
snprintf_s_si: 30 stmts out of 30 (100.0%)
stpcpy_s: 89 stmts out of 89 (100.0%)
strcasecmp_s: 50 stmts out of 50 (100.0%)
strcasestr_s: 80 stmts out of 80 (100.0%)
strcmp_s: 42 stmts out of 42 (100.0%)
strcmpfld_s: 38 stmts out of 38 (100.0%)
strcpyfldin_s: 119 stmts out of 119 (100.0%)
strcpyfldout_s: 121 stmts out of 121 (100.0%)
strcspn_s: 61 stmts out of 61 (100.0%)
strfirstchar_s: 36 stmts out of 36 (100.0%)
strfirstdiff_s: 45 stmts out of 45 (100.0%)
strfirstsame_s: 46 stmts out of 46 (100.0%)
strisalphanumeric_s: 47 stmts out of 47 (100.0%)
strisascii_s: 29 stmts out of 29 (100.0%)
strisdigit_s: 34 stmts out of 34 (100.0%)
strishex_s: 47 stmts out of 47 (100.0%)
strislowercase_s: 36 stmts out of 36 (100.0%)
strismixedcase_s: 40 stmts out of 40 (100.0%)
strispassword_s: 98 stmts out of 98 (100.0%)
strisuppercase_s: 34 stmts out of 34 (100.0%)
strlastchar_s: 39 stmts out of 39 (100.0%)
strlastdiff_s: 50 stmts out of 50 (100.0%)
strlastsame_s: 50 stmts out of 50 (100.0%)
strljustify_s: 69 stmts out of 69 (100.0%)
strncpy_s: 84 stmts out of 84 (100.0%)
strnlen_s: 26 stmts out of 26 (100.0%)
strnterminate_s: 27 stmts out of 27 (100.0%)
strprefix_s: 39 stmts out of 39 (100.0%)
strremovews_s: 78 stmts out of 78 (100.0%)
strspn_s: 63 stmts out of 63 (100.0%)
strstr_s: 77 stmts out of 77 (100.0%)
strtolowercase_s: 28 stmts out of 28 (100.0%)
strtouppercase_s: 28 stmts out of 28 (100.0%)
strzero_s: 24 stmts out of 24 (100.0%)
test_memcmp16_s: 101 stmts out of 101 (100.0%)
test_memcmp32_s: 99 stmts out of 99 (100.0%)
test_memcmp_s: 60 stmts out of 60 (100.0%)
test_memcpy_s: 259 stmts out of 259 (100.0%)
test_strcat_s: 97 stmts out of 97 (100.0%)
test_strcmpfld_s: 122 stmts out of 122 (100.0%)
test_strcpy_s: 63 stmts out of 63 (100.0%)
test_strcpyfld_s: 107 stmts out of 107 (100.0%)
test_strcpyfldin_s: 125 stmts out of 125 (100.0%)
test_strcpyfldout_s: 125 stmts out of 125 (100.0%)
test_strncat_s: 59 stmts out of 59 (100.0%)
test_strncpy_s: 99 stmts out of 99 (100.0%)
wcpcpy_s: 91 stmts out of 91 (100.0%)
wcscat_s: 89 stmts out of 89 (100.0%)
wcscpy_s: 80 stmts out of 80 (100.0%)
wcsncat_s: 106 stmts out of 106 (100.0%)
wcsncpy_s: 84 stmts out of 84 (100.0%)
wmemcpy_s: 51 stmts out of 51 (100.0%)
wmemmove_s: 38 stmts out of 38 (100.0%)
wmemset_s: 18 stmts out of 18 (100.0%)
test_memmove_s: 192 stmts out of 194 (99.0%)
test_memcpy16_s: 221 stmts out of 224 (98.7%)
test_memcpy32_s: 221 stmts out of 224 (98.7%)
test_memmove16_s: 177 stmts out of 180 (98.3%)
test_memmove32_s: 177 stmts out of 180 (98.3%)
main: 93 stmts out of 95 (97.9%)
test_memset_s: 100 stmts out of 103 (97.1%)
test_memzero_s: 77 stmts out of 80 (96.2%)
strcat_s: 85 stmts out of 89 (95.5%)
test_memset32_s: 105 stmts out of 110 (95.5%)
test_memset16_s: 98 stmts out of 103 (95.1%)
test_stpncpy_s: 308 stmts out of 324 (95.1%)
test_memzero16_s: 76 stmts out of 80 (95.0%)
test_memzero32_s: 76 stmts out of 80 (95.0%)
test_wmemcpy_s: 302 stmts out of 320 (94.4%)
test_wcscpy_s: 142 stmts out of 151 (94.0%)
strcpy_s: 63 stmts out of 67 (94.0%)
test_wmemmove_s: 330 stmts out of 351 (94.0%)
test_strnterminate_s: 77 stmts out of 82 (93.9%)
memcmp_s: 57 stmts out of 61 (93.4%)
test_strljustify_s: 99 stmts out of 106 (93.4%)
strpbrk_s: 55 stmts out of 59 (93.2%)
test_wcsnlen_s: 55 stmts out of 59 (93.2%)
test_strtok_s: 63 stmts out of 68 (92.6%)
test_strisalphanumeric_s: 48 stmts out of 52 (92.3%)
strtok_s: 94 stmts out of 102 (92.2%)
test_strremovews_s: 94 stmts out of 102 (92.2%)
test_wcsncpy_s: 158 stmts out of 172 (91.9%)
memcmp16_s: 54 stmts out of 59 (91.5%)
test_wmemcmp_s: 235 stmts out of 257 (91.4%)
test_strtolowercase_s: 53 stmts out of 58 (91.4%)
test_strisascii_s: 42 stmts out of 46 (91.3%)
memcmp32_s: 52 stmts out of 57 (91.2%)
wmemcmp_s: 52 stmts out of 57 (91.2%)
test_strtouppercase_s: 50 stmts out of 55 (90.9%)
test_strisdigit_s: 39 stmts out of 43 (90.7%)
test_strismixed_s: 39 stmts out of 43 (90.7%)
test_strisuppercase_s: 39 stmts out of 43 (90.7%)
test_strishex_s: 47 stmts out of 52 (90.4%)
test_strprefix_s: 54 stmts out of 60 (90.0%)
test_wmemset_s: 132 stmts out of 147 (89.8%)
test_strcasestr_s: 164 stmts out of 183 (89.6%)
test_strislowercase_s: 34 stmts out of 38 (89.5%)
test_strispassword_s: 42 stmts out of 47 (89.4%)
strncat_s: 94 stmts out of 106 (88.7%)
test_strpbrk_s: 99 stmts out of 113 (87.6%)
stpncpy_s: 106 stmts out of 121 (87.6%)
test_strfirstsame_s: 82 stmts out of 94 (87.2%)
test_stpcpy_s: 185 stmts out of 213 (86.9%)
test_strstr_s: 109 stmts out of 126 (86.5%)
test_strfirstdiff_s: 75 stmts out of 87 (86.2%)
test_strlastsame_s: 81 stmts out of 94 (86.2%)
wcsnlen_s: 22 stmts out of 26 (84.6%)
test_strlastchar_s: 47 stmts out of 56 (83.9%)
test_wcsncat_s: 173 stmts out of 207 (83.6%)
test_strlastdiff_s: 61 stmts out of 73 (83.6%)
test_strcspn_s: 121 stmts out of 145 (83.4%)
test_wcscat_s: 158 stmts out of 190 (83.2%)
test_strfirstchar_s: 42 stmts out of 51 (82.4%)
test_strzero_s: 55 stmts out of 67 (82.1%)
test_strcmp_s: 74 stmts out of 91 (81.3%)
test_strspn_s: 102 stmts out of 126 (81.0%)
test_strcasecmp_s: 74 stmts out of 93 (79.6%)
test_strnlen_s: 36 stmts out of 46 (78.3%)
memset16_s: 14 stmts out of 18 (77.8%)
memset32_s: 14 stmts out of 18 (77.8%)
memset_s: 14 stmts out of 18 (77.8%)
strcpyfld_s: 91 stmts out of 117 (77.8%)
invoke_safe_mem_constraint_handler: 3 stmts out of 4 (75.0%)
invoke_safe_str_constraint_handler: 3 stmts out of 4 (75.0%)
test_wcpcpy_s: 175 stmts out of 238 (73.5%)
mem_prim_move16: 222 stmts out of 332 (66.9%)
mem_prim_move32: 222 stmts out of 332 (66.9%)
parse_format: 44 stmts out of 129 (34.1%)
safeclib/mem_primitives_lib.c:399:[nonterm] warning: non-terminating statement
stack 1: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:158 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 2: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:170 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 3: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:203 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 4: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:228 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 5: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:332 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 6: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:95 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
stack 7: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:107 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
safeclib/mem_primitives_lib.c:442:[nonterm] warning: non-terminating statement
stack 1: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:158 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 2: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:170 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 3: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:203 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 4: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:228 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 5: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:332 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 6: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:95 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
stack 7: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:107 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
safeclib/mem_primitives_lib.c:452:[nonterm] warning: non-terminating loop
stack 1: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:158 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 2: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:170 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 3: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:203 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 4: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:228 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 5: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:332 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 6: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:95 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
stack 7: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:107 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
safeclib/mem_primitives_lib.c:456:[nonterm] warning: non-terminating statement
stack 1: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:158 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 2: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcscpy_s.c:170 <-
test_wcscpy_s :: unittests/Safe_String_UnitTestMain.c:157 <-
main
stack 3: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:203 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 4: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:228 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 5: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsncpy_s.c:332 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 6: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:95 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
stack 7: mem_prim_move :: safeclib/wmemcpy_s.c:154 <-
wmemcpy_s :: unittests/test_wcsnlen_s.c:107 <-
test_wcsnlen_s :: unittests/Safe_String_UnitTestMain.c:160 <-
main
safeclib/strncat_s.c:180:[nonterm] warning: non-terminating statement
stack: strncat_s :: unittests/test_strncat_s.c:131 <-
test_strncat_s :: unittests/Safe_String_UnitTestMain.c:141 <-
main
safeclib/strncat_s.c:236:[nonterm] warning: non-terminating statement
stack: strncat_s :: unittests/test_strncat_s.c:131 <-
test_strncat_s :: unittests/Safe_String_UnitTestMain.c:141 <-
main
safeclib/wcsncpy_s.c:175:[nonterm] warning: non-terminating statement
stack 1: wcsncpy_s :: unittests/test_wcsncpy_s.c:309 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 2: wcsncpy_s :: unittests/test_wcsncpy_s.c:413 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
safeclib/wcsncpy_s.c:213:[nonterm] warning: non-terminating statement
stack 1: wcsncpy_s :: unittests/test_wcsncpy_s.c:309 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
stack 2: wcsncpy_s :: unittests/test_wcsncpy_s.c:413 <-
test_wcsncpy_s :: unittests/Safe_String_UnitTestMain.c:159 <-
main
unittests/test_strtok_s.c:116:[nonterm] warning: non-terminating function call
stack: test_strtok_s :: unittests/Safe_String_UnitTestMain.c:150 <- main
unittests/test_strtok_s.c:131:[nonterm] warning: non-terminating function call
stack: test_strtok_s :: unittests/Safe_String_UnitTestMain.c:150 <- main
This diff is collapsed.
This diff is collapsed.
[metrics] Defined functions (246)
=======================
abort_handler_s (0 call); check_integer_format (2 calls);
handle_error (0 call); handle_error_0 (0 call); handle_error_1 (4 calls);
handle_error_10 (0 call); handle_error_11 (0 call);
handle_error_12 (0 call); handle_error_13 (0 call);
handle_error_14 (0 call); handle_error_15 (0 call);
handle_error_16 (0 call); handle_error_17 (0 call);
handle_error_18 (0 call); handle_error_19 (0 call);
handle_error_2 (2 calls); handle_error_20 (0 call);
handle_error_21 (0 call); handle_error_22 (0 call);
handle_error_23 (0 call); handle_error_24 (0 call);
handle_error_25 (0 call); handle_error_26 (0 call);
handle_error_27 (0 call); handle_error_28 (6 calls);
handle_error_29 (6 calls); handle_error_3 (0 call);
handle_error_30 (0 call); handle_error_31 (0 call);
handle_error_32 (0 call); handle_error_33 (0 call);
handle_error_34 (0 call); handle_error_35 (0 call);
handle_error_36 (0 call); handle_error_37 (0 call);
handle_error_38 (0 call); handle_error_39 (0 call); handle_error_4 (0 call);
handle_error_40 (0 call); handle_error_41 (0 call);
handle_error_42 (0 call); handle_error_43 (0 call);
handle_error_44 (0 call); handle_error_45 (0 call);
handle_error_46 (0 call); handle_error_5 (6 calls); handle_error_6 (0 call);
handle_error_7 (0 call); handle_error_8 (3 calls); handle_error_9 (0 call);
handle_wc_error (0 call); handle_wc_error_0 (0 call);
handle_wc_error_1 (0 call); handle_wc_error_10 (0 call);
handle_wc_error_11 (0 call); handle_wc_error_12 (0 call);
handle_wc_error_13 (0 call); handle_wc_error_14 (0 call);
handle_wc_error_15 (0 call); handle_wc_error_16 (0 call);
handle_wc_error_17 (0 call); handle_wc_error_18 (0 call);
handle_wc_error_19 (0 call); handle_wc_error_2 (0 call);
handle_wc_error_20 (0 call); handle_wc_error_21 (0 call);
handle_wc_error_22 (0 call); handle_wc_error_23 (0 call);
handle_wc_error_24 (0 call); handle_wc_error_25 (0 call);
handle_wc_error_26 (0 call); handle_wc_error_27 (0 call);
handle_wc_error_28 (0 call); handle_wc_error_29 (0 call);
handle_wc_error_3 (0 call); handle_wc_error_30 (0 call);
handle_wc_error_31 (0 call); handle_wc_error_32 (0 call);
handle_wc_error_33 (0 call); handle_wc_error_34 (0 call);
handle_wc_error_35 (0 call); handle_wc_error_36 (0 call);
handle_wc_error_37 (0 call); handle_wc_error_38 (0 call);
handle_wc_error_39 (0 call); handle_wc_error_4 (0 call);
handle_wc_error_40 (0 call); handle_wc_error_41 (3 calls);
handle_wc_error_42 (6 calls); handle_wc_error_43 (3 calls);
handle_wc_error_44 (6 calls); handle_wc_error_45 (6 calls);
handle_wc_error_46 (0 call); handle_wc_error_5 (0 call);
handle_wc_error_6 (0 call); handle_wc_error_7 (0 call);
handle_wc_error_8 (0 call); handle_wc_error_9 (0 call);
ignore_handler_s (address taken) (2 calls);
invoke_safe_mem_constraint_handler (101 calls);
invoke_safe_str_constraint_handler (310 calls); main (0 call);
mem_prim_move (4 calls); mem_prim_move16 (2 calls);
mem_prim_move32 (2 calls); mem_prim_move8 (0 call); mem_prim_set (16 calls);
mem_prim_set16 (9 calls); mem_prim_set32 (10 calls); memcmp16_s (11 calls);
memcmp32_s (11 calls); memcmp_s (42 calls); memcpy16_s (15 calls);
memcpy32_s (15 calls); memcpy_s (16 calls); memmove16_s (13 calls);
memmove32_s (13 calls); memmove_s (13 calls); memset16_s (7 calls);
memset32_s (7 calls); memset_s (14 calls); memzero16_s (7 calls);
memzero32_s (7 calls); memzero_s (7 calls); parse_format (4 calls);
set_mem_constraint_handler_s (0 call);
set_str_constraint_handler_s (0 call); snprintf_s_i (0 call);
snprintf_s_l (0 call); snprintf_s_si (1 call); snprintf_s_sl (0 call);
stpcpy_s (17 calls); stpncpy_s (19 calls); strcasecmp_s (14 calls);
strcasestr_s (22 calls); strcat_s (19 calls); strcmp_s (13 calls);
strcmpfld_s (13 calls); strcpy_s (15 calls); strcpyfld_s (11 calls);
strcpyfldin_s (13 calls); strcpyfldout_s (14 calls); strcspn_s (16 calls);
strfirstchar_s (9 calls); strfirstdiff_s (14 calls);
strfirstsame_s (15 calls); strisalphanumeric_s (11 calls);
strisascii_s (10 calls); strisdigit_s (9 calls); strishex_s (11 calls);
strislowercase_s (8 calls); strismixedcase_s (9 calls);
strispassword_s (11 calls); strisuppercase_s (9 calls);
strlastchar_s (10 calls); strlastdiff_s (12 calls);
strlastsame_s (15 calls); strljustify_s (15 calls); strncat_s (14 calls);
strncpy_s (19 calls); strnlen_s (32 calls); strnterminate_s (14 calls);
strpbrk_s (17 calls); strprefix_s (13 calls); strremovews_s (14 calls);
strspn_s (17 calls); strstr_s (20 calls); strtok_s (12 calls);
strtolowercase_s (9 calls); strtouppercase_s (9 calls);
strzero_s (30 calls); test_memcmp16_s (1 call); test_memcmp32_s (1 call);
test_memcmp_s (1 call); test_memcpy16_s (1 call); test_memcpy32_s (1 call);
test_memcpy_s (1 call); test_memmove16_s (1 call);
test_memmove32_s (1 call); test_memmove_s (1 call);
test_memset16_s (1 call); test_memset32_s (1 call); test_memset_s (1 call);
test_memzero16_s (1 call); test_memzero32_s (1 call);
test_memzero_s (1 call); test_stpcpy_s (1 call); test_stpncpy_s (1 call);
test_strcasecmp_s (1 call); test_strcasestr_s (1 call);
test_strcat_s (1 call); test_strcmp_s (1 call); test_strcmpfld_s (1 call);
test_strcpy_s (1 call); test_strcpyfld_s (1 call);
test_strcpyfldin_s (1 call); test_strcpyfldout_s (1 call);
test_strcspn_s (1 call); test_strfirstchar_s (1 call);
test_strfirstdiff_s (1 call); test_strfirstsame_s (1 call);
test_strisalphanumeric_s (1 call); test_strisascii_s (1 call);
test_strisdigit_s (1 call); test_strishex_s (1 call);
test_strislowercase_s (1 call); test_strismixed_s (1 call);
test_strispassword_s (1 call); test_strisuppercase_s (1 call);
test_strlastchar_s (1 call); test_strlastdiff_s (1 call);
test_strlastsame_s (1 call); test_strljustify_s (1 call);
test_strncat_s (1 call); test_strncpy_s (1 call); test_strnlen_s (1 call);
test_strnterminate_s (1 call); test_strpbrk_s (1 call);
test_strprefix_s (1 call); test_strremovews_s (1 call);
test_strspn_s (1 call); test_strstr_s (1 call); test_strtok_s (1 call);
test_strtolowercase_s (1 call); test_strtouppercase_s (1 call);
test_strzero_s (1 call); test_wcpcpy_s (1 call); test_wcscat_s (1 call);
test_wcscpy_s (1 call); test_wcsncat_s (1 call); test_wcsncpy_s (1 call);
test_wcsnlen_s (1 call); test_wmemcmp_s (1 call); test_wmemcpy_s (1 call);
test_wmemmove_s (1 call); test_wmemset_s (1 call); wcpcpy_s (17 calls);
wcscat_s (21 calls); wcscpy_s (89 calls); wcsncat_s (22 calls);
wcsncpy_s (18 calls); wcsnlen_s (45 calls); wmemcmp_s (16 calls);
wmemcpy_s (53 calls); wmemmove_s (19 calls); wmemset_s (19 calls);
Undefined functions (0)
=======================
'Extern' global variables (0)
=============================
Potential entry points (93)
===========================
abort_handler_s; handle_error; handle_error_0; handle_error_10;
handle_error_11; handle_error_12; handle_error_13; handle_error_14;
handle_error_15; handle_error_16; handle_error_17; handle_error_18;
handle_error_19; handle_error_20; handle_error_21; handle_error_22;
handle_error_23; handle_error_24; handle_error_25; handle_error_26;
handle_error_27; handle_error_3; handle_error_30; handle_error_31;
handle_error_32; handle_error_33; handle_error_34; handle_error_35;
handle_error_36; handle_error_37; handle_error_38; handle_error_39;
handle_error_4; handle_error_40; handle_error_41; handle_error_42;
handle_error_43; handle_error_44; handle_error_45; handle_error_46;
handle_error_6; handle_error_7; handle_error_9; handle_wc_error;
handle_wc_error_0; handle_wc_error_1; handle_wc_error_10;
handle_wc_error_11; handle_wc_error_12; handle_wc_error_13;
handle_wc_error_14; handle_wc_error_15; handle_wc_error_16;
handle_wc_error_17; handle_wc_error_18; handle_wc_error_19;
handle_wc_error_2; handle_wc_error_20; handle_wc_error_21;
handle_wc_error_22; handle_wc_error_23; handle_wc_error_24;
handle_wc_error_25; handle_wc_error_26; handle_wc_error_27;
handle_wc_error_28; handle_wc_error_29; handle_wc_error_3;
handle_wc_error_30; handle_wc_error_31; handle_wc_error_32;
handle_wc_error_33; handle_wc_error_34; handle_wc_error_35;
handle_wc_error_36; handle_wc_error_37; handle_wc_error_38;
handle_wc_error_39; handle_wc_error_4; handle_wc_error_40;
handle_wc_error_46; handle_wc_error_5; handle_wc_error_6;
handle_wc_error_7; handle_wc_error_8; handle_wc_error_9; main;
mem_prim_move8; set_mem_constraint_handler_s; set_str_constraint_handler_s;
snprintf_s_i; snprintf_s_l; snprintf_s_sl;
Global metrics
==============
Sloc = 13632
Decision point = 2794
Global variables = 50
If = 2644
Loop = 479
Goto = 540
Assignment = 5172
Exit point = 246
Function = 246
Function call = 3745
Pointer dereferencing = 1061
Cyclomatic complexity = 3040
This diff is collapsed.
../../path.mk
\ No newline at end of file
cmake_minimum_required(VERSION 3.1)
project(safestring)
option(BUILD_UNITTESTS "Build also project unit-tests" OFF)
if (NOT DEFINED BUILD_OPT_DEFAULT)
set (BUILD_OPT_DEFAULT YES CACHE PATH "Build option default")
endif (NOT DEFINED BUILD_OPT_DEFAULT)
option(BUILD_MEMCMP "Build memcmp* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_MEMCPY "Build memcpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_MEMMOVE "Build memmove* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_MEMSET "Build memset* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_MEMZERO "Build memzero* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STPCPY "Build stpcpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STPNCPY "Build stpncpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCASECMP "Build strcasecmp* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCASESTR "Build strcasestr* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCAT "Build strcat* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCMPFLD "Build strcmpfld* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCMP "Build strcmp* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCPYFLDIN "Build strcpyfldin* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCPYFLDOUT "Build strcpyfldout* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCPYFLD "Build strcpyfld* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCPY "Build strcpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRCSPN "Build strcspn* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRFIRSTCHAR "Build strfirstchar* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRFIRSTDIFF "Build strfirstdiff* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRFIRSTSAME "Build strfirstsame* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISALPHANUMERIC "Build strisalphanumeric* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISASCII "Build strisascii* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISDIGIT "Build strisdigit* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISHEX "Build strishex* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISLOWERCASE "Build strislowercase* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISMIXEDCASE "Build strismixedcase* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISPASSWORD "Build strispassword* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRISUPPERCASE "Build strisuppercase* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRLASTCHAR "Build strlastchar* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRLASTDIFF "Build strlastdiff* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRLASTSAME "Build strlastsame* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRLJUSTIFY "Build strljustify* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRNCAT "Build strncat* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRNCPY "Build strncpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRNLEN "Build strnlen* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRNTERMINATE "Build strnterminate* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRPBRK "Build strpbrk* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRPREFIX "Build strprefix* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRREMOVEWS "Build strremovews* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRSPN "Build strspn* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRSTR "Build strstr* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRTOK "Build strtok* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRTOLOWERCASE "Build strtolowercase* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRTOUPPERCASE "Build strtouppercase* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_STRZERO "Build strzero* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCPCPY "Build wcpcpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCSCAT "Build wcscat* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCSCPY "Build wcscpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCSNCAT "Build wcsncat* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCSNCPY "Build wcsncpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WCSNLEN "Build wcsnlen* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WMEMCMP "Build wmemcmp* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WMEMCPY "Build wmemcpy* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WMEMMOVE "Build wmemmove* functions" ${BUILD_OPT_DEFAULT})
option(BUILD_WMEMSET "Build wmemset* functions" ${BUILD_OPT_DEFAULT})
set(SOURCES
safeclib/abort_handler_s.c