Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifparse.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cif_list_tags.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_grammar_y.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_y.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciftable.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/common.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_flex.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_grammar_flex.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_options.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_options.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/yy.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/datablock.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciftable.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifmessage.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cifmessage.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.h Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c Examining data/cod-tools-3.1.0+dfsg/src/components/codcif/datablock.h Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.h Examining data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/allocx.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/fopenx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/texceptions.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/fmemopenx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tsubsystems.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tfinaly.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tcreallocx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/programs/tstrdupx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_a.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_a.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_b.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/tests/subsystem_b.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stringx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cexceptions.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stringx.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/allocx.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cexceptions.h Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.c Examining data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.h Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/tests/programs/topt.c Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c Examining data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.h FINAL RESULTS: data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:303:9: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. sprintf( buf, ";%s\n;\n", text ); data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:141:15: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). buf = strcat( buf, value_scalar( list_get( list, i ) ) ); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:299:21: [4] (buffer) strcat: Does not check for buffer overflows when concatenating to destination [MS-banned] (CWE-120). Consider using strcat_s, strncat, strlcat, or snprintf (warning: strncat is easily misused). strcat( new, cxprintf( "&#x%04X;", *src & 255 ) ); data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c:35:5: [4] (format) vsprintf: Potential format string problem (CWE-134). Make format string constant. vsprintf( error_message, format, args ); data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c:132:13: [4] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. pos += sprintf( optnames + pos, "%s%s", pos == 0 ? "" : ", ", data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:313:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char nprefix[ length ]; data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:533:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char header[10]; data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:641:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char header[10]; data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cif_list_tags.c:23:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *usage_text[2] = { data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifparse.c:27:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *usage_text[2] = { data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c:24:8: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char *usage_text[2] = { data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/cxprintf.c:30:12: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char error_message[200] = ""; data/cod-tools-3.1.0+dfsg/src/externals/cexceptions/stdiox.c:21:15: [2] (misc) fopen: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). FILE *f = fopen( filename, mode ); data/cod-tools-3.1.0+dfsg/src/externals/getoptions/getoptions.c:127:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char optnames[150]; data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:307:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strlen( prefix ) + data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:308:32: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). (dblock_name ? strlen( dblock_name ) : 0) + data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:310:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). 2 * strlen( separator ) data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:319:17: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if( strlen( prefix ) != 0 ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:320:17: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. strncat( nprefix, prefix, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:320:52: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncat( nprefix, prefix, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:321:17: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. strncat( nprefix, separator, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:321:55: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncat( nprefix, separator, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:324:17: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. strncat( nprefix, dblock_name, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:324:57: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncat( nprefix, dblock_name, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:325:17: [1] (buffer) strncat: Easily used incorrectly (e.g., incorrectly computing the correct maximum size to add) [MS-banned] (CWE-120). Consider strcat_s, strlcat, snprintf, or automatically resizing strings. strncat( nprefix, separator, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif.c:325:55: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strncat( nprefix, separator, length - strlen(nprefix) - 1 ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif2_lexer.c:165:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if( strlen( cif2lval.s ) > cif_mandated_tag_length ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:213:9: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strlen( datablock_name( cif_last_datablock( cif_compiler_cif( cif_cc ) ) ) ) > 0 ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:218:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if( progname && strlen( progname ) > 0 ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:254:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). strlen( datablock_name( cif_last_datablock( cif_compiler_cif( cif_cc ) ))) > 0 ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:278:26: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ssize_t length = strlen( text ) + countchars( '\n', text ) + 1; data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:302:30: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). char *buf = mallocx( strlen(text) + 5, ex ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:520:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:522:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:523:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:524:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:536:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:552:26: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:564:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:571:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:599:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). in = fmemopenx( buffer, strlen( buffer ), "r", &inner ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:628:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:630:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:631:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:632:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:644:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:660:26: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:672:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_compiler.c:679:18: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c:140:14: [1] (buffer) getc: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). int ch = getc( in ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lex_buffer.c:153:29: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if( strlen( current_line ) > cif_mandated_line_length ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/cif_lexer.c:164:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). if( strlen( ciflval.s ) > cif_mandated_tag_length ) { data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:134:19: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). length += strlen( value_scalar( list_get( list, i ) ) ); data/cod-tools-3.1.0+dfsg/src/components/codcif/ciflist.c:142:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). pos = pos + strlen( value_scalar( list_get( list, i ) ) ); data/cod-tools-3.1.0+dfsg/src/components/codcif/cifvalue.c:150:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t len = strlen( str ); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:35:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t length1 = strlen( keyword ); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:36:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t length2 = strlen( string ); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:178:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int length = strlen(tf); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:234:18: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). int length = strlen(tf); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:278:22: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ssize_t length = strlen( src ); data/cod-tools-3.1.0+dfsg/src/components/codcif/common.c:300:34: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). dest = new + strlen( new ) - 1; data/cod-tools-3.1.0+dfsg/src/components/codcif/programs/cifvalues.c:145:9: [1] (buffer) strncpy: Easily used incorrectly; doesn't always \0-terminate or check for invalid pointers [MS-banned] (CWE-120). strncpy( taglist[tagcount - 1], tag_pointer, taglen ); data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:22:21: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). size_t length = strlen( bytes ) + 1; data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:36:33: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). dest = buffer + strlen( buffer ); data/cod-tools-3.1.0+dfsg/src/components/pycodcif/pycodcif.c:281:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ( strlen( fname ) == 1 && fname[0] == '-' ) ) { data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c:27:54: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). SV ** value_ref = hv_fetch(options, optname, strlen(optname), 0); data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/CIF/Parser/Bison/Bison.c:247:11: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). ( strlen( fname ) == 1 && fname[0] == '-' ) ) { data/cod-tools-3.1.0+dfsg/src/lib/perl5/COD/SPGLib/SPGLib.c:17:26: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). hv_store( hash, key, strlen(key), scalar, 0 ); ANALYSIS SUMMARY: Hits = 68 Lines analyzed = 7981 in approximately 0.94 seconds (8531 lines/second) Physical Source Lines of Code (SLOC) = 6385 Hits@level = [0] 145 [1] 54 [2] 9 [3] 0 [4] 5 [5] 0 Hits@level+ = [0+] 213 [1+] 68 [2+] 14 [3+] 5 [4+] 5 [5+] 0 Hits/KSLOC@level+ = [0+] 33.3594 [1+] 10.65 [2+] 2.19264 [3+] 0.783085 [4+] 0.783085 [5+] 0 Symlinks skipped = 34 (--allowlink overrides but see doc for security issue) Dot directories skipped = 1 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.