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/enemylines3-1.25/map.h Examining data/enemylines3-1.25/shot.h Examining data/enemylines3-1.25/entity.cc Examining data/enemylines3-1.25/elements/timeleft.h Examining data/enemylines3-1.25/elements/goal_keys.h Examining data/enemylines3-1.25/elements/supercharge.cc Examining data/enemylines3-1.25/elements/level.cc Examining data/enemylines3-1.25/elements/timeleft.cc Examining data/enemylines3-1.25/elements/score.h Examining data/enemylines3-1.25/elements/energy.h Examining data/enemylines3-1.25/elements/goal_kills.h Examining data/enemylines3-1.25/elements/goal_survive.cc Examining data/enemylines3-1.25/elements/level.h Examining data/enemylines3-1.25/elements/goal_survive.h Examining data/enemylines3-1.25/elements/interval.h Examining data/enemylines3-1.25/elements/goal_keys.cc Examining data/enemylines3-1.25/elements/score.cc Examining data/enemylines3-1.25/elements/goal_kills.cc Examining data/enemylines3-1.25/elements/energy.cc Examining data/enemylines3-1.25/elements/supercharge.h Examining data/enemylines3-1.25/elements/interval.cc Examining data/enemylines3-1.25/entitytype.h Examining data/enemylines3-1.25/mapswitch.cc Examining data/enemylines3-1.25/box3_tpl.h Examining data/enemylines3-1.25/audio.cc Examining data/enemylines3-1.25/models/block3_s.h Examining data/enemylines3-1.25/models/block3_s.cc Examining data/enemylines3-1.25/models/robot.h Examining data/enemylines3-1.25/models/block1_s.cc Examining data/enemylines3-1.25/models/block1_r.h Examining data/enemylines3-1.25/models/block3_r.h Examining data/enemylines3-1.25/models/weapon.cc Examining data/enemylines3-1.25/models/key.h Examining data/enemylines3-1.25/models/block2_r.h Examining data/enemylines3-1.25/models/block1_s.h Examining data/enemylines3-1.25/models/robot.cc Examining data/enemylines3-1.25/models/block1_w.cc Examining data/enemylines3-1.25/models/block3_r.cc Examining data/enemylines3-1.25/models/block3_w.h Examining data/enemylines3-1.25/models/skip.cc Examining data/enemylines3-1.25/models/key.cc Examining data/enemylines3-1.25/models/skel.cc Examining data/enemylines3-1.25/models/block3_n.cc Examining data/enemylines3-1.25/models/block2_s.cc Examining data/enemylines3-1.25/models/floor1.h Examining data/enemylines3-1.25/models/block2_n.cc Examining data/enemylines3-1.25/models/block2_w.cc Examining data/enemylines3-1.25/models/block3_w.cc Examining data/enemylines3-1.25/models/skip.h Examining data/enemylines3-1.25/models/skel.h Examining data/enemylines3-1.25/models/pill.cc Examining data/enemylines3-1.25/models/floor1.cc Examining data/enemylines3-1.25/models/block2_w.h Examining data/enemylines3-1.25/models/block3_n.h Examining data/enemylines3-1.25/models/all.h Examining data/enemylines3-1.25/models/block2_s.h Examining data/enemylines3-1.25/models/block1_r.cc Examining data/enemylines3-1.25/models/block2_r.cc Examining data/enemylines3-1.25/models/block3_e.cc Examining data/enemylines3-1.25/models/block1_e.h Examining data/enemylines3-1.25/models/block1_e.cc Examining data/enemylines3-1.25/models/block2_e.cc Examining data/enemylines3-1.25/models/block1_n.cc Examining data/enemylines3-1.25/models/pill.h Examining data/enemylines3-1.25/models/block3_e.h Examining data/enemylines3-1.25/models/block1_w.h Examining data/enemylines3-1.25/models/block2_e.h Examining data/enemylines3-1.25/models/block2_n.h Examining data/enemylines3-1.25/models/block1_n.h Examining data/enemylines3-1.25/models/weapon.h Examining data/enemylines3-1.25/font_ogl.cc Examining data/enemylines3-1.25/mapbase.cc Examining data/enemylines3-1.25/game.h Examining data/enemylines3-1.25/timeoutlist.h Examining data/enemylines3-1.25/font.h Examining data/enemylines3-1.25/menu.cc Examining data/enemylines3-1.25/skybox.cc Examining data/enemylines3-1.25/entity.h Examining data/enemylines3-1.25/font_ogl.h Examining data/enemylines3-1.25/tile.cc Examining data/enemylines3-1.25/hiscore.h Examining data/enemylines3-1.25/sphere.h Examining data/enemylines3-1.25/shot.cc Examining data/enemylines3-1.25/matrix4_tpl.h Examining data/enemylines3-1.25/tips.h Examining data/enemylines3-1.25/tips.cc Examining data/enemylines3-1.25/tile.h Examining data/enemylines3-1.25/frustum.h Examining data/enemylines3-1.25/font_ttf.h Examining data/enemylines3-1.25/frustum.cc Examining data/enemylines3-1.25/random.h Examining data/enemylines3-1.25/skybox.h Examining data/enemylines3-1.25/tweak/tweak_release.cc Examining data/enemylines3-1.25/tweak/tweak_release.h Examining data/enemylines3-1.25/tweak/tweak.h Examining data/enemylines3-1.25/font_data.h Examining data/enemylines3-1.25/tiletype.h Examining data/enemylines3-1.25/mapbase.h Examining data/enemylines3-1.25/menu.h Examining data/enemylines3-1.25/font_data.cc Examining data/enemylines3-1.25/help.h Examining data/enemylines3-1.25/timeoutlist.cc Examining data/enemylines3-1.25/c3_tpl.h Examining data/enemylines3-1.25/help.cc Examining data/enemylines3-1.25/audio.h Examining data/enemylines3-1.25/config.h Examining data/enemylines3-1.25/map.cc Examining data/enemylines3-1.25/container.h Examining data/enemylines3-1.25/sphere.cc Examining data/enemylines3-1.25/config.cc Examining data/enemylines3-1.25/container.cc Examining data/enemylines3-1.25/font_ttf.cc Examining data/enemylines3-1.25/mapswitch.h Examining data/enemylines3-1.25/c4_tpl.h Examining data/enemylines3-1.25/util.cc Examining data/enemylines3-1.25/release.h Examining data/enemylines3-1.25/util.h Examining data/enemylines3-1.25/random.cc Examining data/enemylines3-1.25/hiscore.cc Examining data/enemylines3-1.25/generators/invert.cc Examining data/enemylines3-1.25/generators/hole.cc Examining data/enemylines3-1.25/generators/pyr.cc Examining data/enemylines3-1.25/generators/generators.h Examining data/enemylines3-1.25/generators/intreg1.cc Examining data/enemylines3-1.25/generators/util.cc Examining data/enemylines3-1.25/generators/util.h Examining data/enemylines3-1.25/generators/randomize_height.cc Examining data/enemylines3-1.25/generators/lab.cc Examining data/enemylines3-1.25/generators/stamp.cc Examining data/enemylines3-1.25/coordinate.h Examining data/enemylines3-1.25/game.cc Examining data/enemylines3-1.25/font.cc Examining data/enemylines3-1.25/main.cc FINAL RESULTS: data/enemylines3-1.25/random.cc:23:2: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. srand(s); data/enemylines3-1.25/font_data.cc:102:15: [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 const char * font_all[94][14]= { data/enemylines3-1.25/font_ttf.cc:26:2: [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 text[2]; data/enemylines3-1.25/hiscore.cc:43:5: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. memcpy(&(mem->memory[mem->size]), ptr, realsize); data/enemylines3-1.25/font_ogl.cc:44:25: [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). glTranslatef(-(float)(strlen(text)*dx()/2),-(float)(dy()/2),0); data/enemylines3-1.25/font_ogl.cc:47: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). for (unsigned int i=0;i<strlen(text);i++) { ANALYSIS SUMMARY: Hits = 6 Lines analyzed = 18612 in approximately 0.49 seconds (38105 lines/second) Physical Source Lines of Code (SLOC) = 16412 Hits@level = [0] 0 [1] 2 [2] 3 [3] 1 [4] 0 [5] 0 Hits@level+ = [0+] 6 [1+] 6 [2+] 4 [3+] 1 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.365586 [1+] 0.365586 [2+] 0.243724 [3+] 0.060931 [4+] 0 [5+] 0 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.