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/freespace2-launcher-wxlauncher-0.11.0+dfsg/cmake/test_wxstl.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/MainWindow.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/MainWindow.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/CmdLineManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/CmdLineManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/EventHandlers.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/EventHandlers.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FREDManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FREDManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FileProfileManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/HelpManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/HelpManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/JoystickManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/JoystickManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/OpenALManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/OpenALManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/PlatformProfileManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/PlatformProfileManagerShared.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileManagerOperator.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileManagerOperator.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileProxy.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/ProfileProxy.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/RegistryProfileManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SkinManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SkinManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SpeechManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SpeechManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/TCManager.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/TCManager.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/BottomButtons.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/BottomButtons.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/FlagListBox.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/FlagListBox.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/LightingPresets.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/LightingPresets.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/Logger.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/Logger.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/ModList.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/ModList.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/StatusBar.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/StatusBar.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/TruncatableChoice.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/TruncatableChoice.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/FSOExecutable.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/FSOExecutable.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/FlagFileData.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/FlagFileData.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/FlagInfo.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/NewsSource.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/NewsSource.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/ResolutionMap.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/datastructures/ResolutionMap.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/BasicDefaults.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/BasicDefaults.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/Compatibility.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/Compatibility.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/MemoryDebugging.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ModDefaults.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ModDefaults.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ModIniKeys.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ModIniKeys.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ProfileKeys.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ProfileKeys.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/RegistryKeys.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/RegistryKeys.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/SkinDefaults.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/SkinDefaults.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/Utils.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/Utils.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/ids.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/targetver.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/version.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/global/version.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/AdvSettingsPage.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/AdvSettingsPage.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/BasicSettingsPage.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/BasicSettingsPage.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/InstallPage.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/InstallPage.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/ModsPage.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/ModsPage.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/WelcomePage.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/tabs/WelcomePage.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/wxLauncherApp.cpp
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/wxLauncherApp.h
Examining data/freespace2-launcher-wxlauncher-0.11.0+dfsg/platform/win32/registry_helper.cpp

FINAL RESULTS:

data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/JoystickManager.cpp:291:2:  [4] (shell) WinExec:
  This causes a new program to execute and is difficult to use safely
  (CWE-78). try using a library call that implements the same functionality
  if available.
	WinExec("rundll32.exe shell32.dll,Control_RunDLL joy.cpl", SW_SHOWNORMAL);
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:385:3:  [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 easy_flag[32];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:402:3:  [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 flag_string[20];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:403:3:  [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 description[40];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:405:3:  [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 easy_catagory[16], web_url[256];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/JoystickManager.cpp:171:5:  [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 guidStr[33];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/ModList.cpp:716: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 header[3];
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:391:47:  [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).
		wxString easyFlagStr(easy_flag, wxConvUTF8, strlen(easy_flag));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:456:56:  [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).
		flag->flagString = wxString(flag_string, wxConvUTF8, strlen(flag_string));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:457:62:  [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).
		flag->shortDescription = wxString(description, wxConvUTF8, strlen(description));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:458:48:  [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).
		flag->webURL = wxString(web_url, wxConvUTF8, strlen(web_url));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/FlagListManager.cpp:459:59:  [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).
		flag->fsoCatagory = wxString(easy_catagory, wxConvUTF8, strlen(easy_catagory));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/OpenALManager.cpp:216: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).
				len = strlen(devices+offset);
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SpeechManager.cpp:135:21:  [1] (buffer) wcslen:
  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 idlength = wcslen(id);
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/apis/SpeechManager.cpp:140:60:  [1] (buffer) wcslen:
  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).
		voices.push_back(VoiceData(wxString(id, wxMBConvUTF16(), wcslen(id)), comAVoice));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/Logger.cpp:64:28:  [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).
	this->out->Write(exitmsg, strlen(exitmsg));
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/ModList.cpp:739:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if ( read != size ) {
data/freespace2-launcher-wxlauncher-0.11.0+dfsg/code/controls/ModList.cpp:740:75:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		wxLogError(wxT("read (") SZT wxT(") not equal to size (") SZT wxT(")"), read, size);

ANALYSIS SUMMARY:

Hits = 18
Lines analyzed = 18767 in approximately 0.53 seconds (35347 lines/second)
Physical Source Lines of Code (SLOC) = 13446
Hits@level = [0]   0 [1]  11 [2]   6 [3]   0 [4]   1 [5]   0
Hits@level+ = [0+]  18 [1+]  18 [2+]   7 [3+]   1 [4+]   1 [5+]   0
Hits/KSLOC@level+ = [0+] 1.33869 [1+] 1.33869 [2+] 0.520601 [3+] 0.0743716 [4+] 0.0743716 [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.