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/wxmaxima-19.07.0/art/config/images.h
Examining data/wxmaxima-19.07.0/art/draw/images.h
Examining data/wxmaxima-19.07.0/art/statusbar/images.h
Examining data/wxmaxima-19.07.0/art/toolbar/images.h
Examining data/wxmaxima-19.07.0/data/icon.h
Examining data/wxmaxima-19.07.0/data/wxMathML.h
Examining data/wxmaxima-19.07.0/src/AbsCell.cpp
Examining data/wxmaxima-19.07.0/src/AbsCell.h
Examining data/wxmaxima-19.07.0/src/ActualValuesStorageWiz.cpp
Examining data/wxmaxima-19.07.0/src/ActualValuesStorageWiz.h
Examining data/wxmaxima-19.07.0/src/AtCell.cpp
Examining data/wxmaxima-19.07.0/src/AtCell.h
Examining data/wxmaxima-19.07.0/src/Autocomplete.cpp
Examining data/wxmaxima-19.07.0/src/Autocomplete.h
Examining data/wxmaxima-19.07.0/src/AutocompletePopup.cpp
Examining data/wxmaxima-19.07.0/src/AutocompletePopup.h
Examining data/wxmaxima-19.07.0/src/BC2Wiz.cpp
Examining data/wxmaxima-19.07.0/src/BC2Wiz.h
Examining data/wxmaxima-19.07.0/src/BTextCtrl.cpp
Examining data/wxmaxima-19.07.0/src/BTextCtrl.h
Examining data/wxmaxima-19.07.0/src/BitmapOut.cpp
Examining data/wxmaxima-19.07.0/src/BitmapOut.h
Examining data/wxmaxima-19.07.0/src/Cell.cpp
Examining data/wxmaxima-19.07.0/src/Cell.h
Examining data/wxmaxima-19.07.0/src/ConfigDialogue.cpp
Examining data/wxmaxima-19.07.0/src/ConfigDialogue.h
Examining data/wxmaxima-19.07.0/src/Configuration.cpp
Examining data/wxmaxima-19.07.0/src/Configuration.h
Examining data/wxmaxima-19.07.0/src/ConjugateCell.cpp
Examining data/wxmaxima-19.07.0/src/ConjugateCell.h
Examining data/wxmaxima-19.07.0/src/DiffCell.cpp
Examining data/wxmaxima-19.07.0/src/DiffCell.h
Examining data/wxmaxima-19.07.0/src/Dirstructure.cpp
Examining data/wxmaxima-19.07.0/src/Dirstructure.h
Examining data/wxmaxima-19.07.0/src/DrawWiz.cpp
Examining data/wxmaxima-19.07.0/src/DrawWiz.h
Examining data/wxmaxima-19.07.0/src/EMFout.cpp
Examining data/wxmaxima-19.07.0/src/EMFout.h
Examining data/wxmaxima-19.07.0/src/EditorCell.cpp
Examining data/wxmaxima-19.07.0/src/EditorCell.h
Examining data/wxmaxima-19.07.0/src/ErrorRedirector.cpp
Examining data/wxmaxima-19.07.0/src/ErrorRedirector.h
Examining data/wxmaxima-19.07.0/src/EvaluationQueue.cpp
Examining data/wxmaxima-19.07.0/src/EvaluationQueue.h
Examining data/wxmaxima-19.07.0/src/ExptCell.cpp
Examining data/wxmaxima-19.07.0/src/ExptCell.h
Examining data/wxmaxima-19.07.0/src/FindReplaceDialog.cpp
Examining data/wxmaxima-19.07.0/src/FindReplaceDialog.h
Examining data/wxmaxima-19.07.0/src/FindReplacePane.cpp
Examining data/wxmaxima-19.07.0/src/FindReplacePane.h
Examining data/wxmaxima-19.07.0/src/FracCell.cpp
Examining data/wxmaxima-19.07.0/src/FracCell.h
Examining data/wxmaxima-19.07.0/src/FunCell.cpp
Examining data/wxmaxima-19.07.0/src/FunCell.h
Examining data/wxmaxima-19.07.0/src/Gen1Wiz.cpp
Examining data/wxmaxima-19.07.0/src/Gen1Wiz.h
Examining data/wxmaxima-19.07.0/src/Gen2Wiz.cpp
Examining data/wxmaxima-19.07.0/src/Gen2Wiz.h
Examining data/wxmaxima-19.07.0/src/Gen3Wiz.cpp
Examining data/wxmaxima-19.07.0/src/Gen3Wiz.h
Examining data/wxmaxima-19.07.0/src/Gen4Wiz.cpp
Examining data/wxmaxima-19.07.0/src/Gen4Wiz.h
Examining data/wxmaxima-19.07.0/src/Gen5Wiz.cpp
Examining data/wxmaxima-19.07.0/src/Gen5Wiz.h
Examining data/wxmaxima-19.07.0/src/GroupCell.cpp
Examining data/wxmaxima-19.07.0/src/GroupCell.h
Examining data/wxmaxima-19.07.0/src/History.cpp
Examining data/wxmaxima-19.07.0/src/History.h
Examining data/wxmaxima-19.07.0/src/Image.cpp
Examining data/wxmaxima-19.07.0/src/Image.h
Examining data/wxmaxima-19.07.0/src/ImgCell.cpp
Examining data/wxmaxima-19.07.0/src/ImgCell.h
Examining data/wxmaxima-19.07.0/src/IntCell.cpp
Examining data/wxmaxima-19.07.0/src/IntCell.h
Examining data/wxmaxima-19.07.0/src/IntegrateWiz.cpp
Examining data/wxmaxima-19.07.0/src/IntegrateWiz.h
Examining data/wxmaxima-19.07.0/src/LimitCell.cpp
Examining data/wxmaxima-19.07.0/src/LimitCell.h
Examining data/wxmaxima-19.07.0/src/LimitWiz.cpp
Examining data/wxmaxima-19.07.0/src/LimitWiz.h
Examining data/wxmaxima-19.07.0/src/ListSortWiz.cpp
Examining data/wxmaxima-19.07.0/src/ListSortWiz.h
Examining data/wxmaxima-19.07.0/src/LogPane.cpp
Examining data/wxmaxima-19.07.0/src/LogPane.h
Examining data/wxmaxima-19.07.0/src/MainMenuBar.cpp
Examining data/wxmaxima-19.07.0/src/MainMenuBar.h
Examining data/wxmaxima-19.07.0/src/MarkDown.cpp
Examining data/wxmaxima-19.07.0/src/MarkDown.h
Examining data/wxmaxima-19.07.0/src/MatWiz.cpp
Examining data/wxmaxima-19.07.0/src/MatWiz.h
Examining data/wxmaxima-19.07.0/src/MathParser.cpp
Examining data/wxmaxima-19.07.0/src/MathParser.h
Examining data/wxmaxima-19.07.0/src/MatrCell.cpp
Examining data/wxmaxima-19.07.0/src/MatrCell.h
Examining data/wxmaxima-19.07.0/src/MaxSizeChooser.cpp
Examining data/wxmaxima-19.07.0/src/MaxSizeChooser.h
Examining data/wxmaxima-19.07.0/src/Notification.cpp
Examining data/wxmaxima-19.07.0/src/Notification.h
Examining data/wxmaxima-19.07.0/src/ParenCell.cpp
Examining data/wxmaxima-19.07.0/src/ParenCell.h
Examining data/wxmaxima-19.07.0/src/Plot2dWiz.cpp
Examining data/wxmaxima-19.07.0/src/Plot2dWiz.h
Examining data/wxmaxima-19.07.0/src/Plot3dWiz.cpp
Examining data/wxmaxima-19.07.0/src/Plot3dWiz.h
Examining data/wxmaxima-19.07.0/src/PlotFormatWiz.cpp
Examining data/wxmaxima-19.07.0/src/PlotFormatWiz.h
Examining data/wxmaxima-19.07.0/src/Printout.cpp
Examining data/wxmaxima-19.07.0/src/Printout.h
Examining data/wxmaxima-19.07.0/src/RecentDocuments.cpp
Examining data/wxmaxima-19.07.0/src/RecentDocuments.h
Examining data/wxmaxima-19.07.0/src/SVGout.cpp
Examining data/wxmaxima-19.07.0/src/SVGout.h
Examining data/wxmaxima-19.07.0/src/SeriesWiz.cpp
Examining data/wxmaxima-19.07.0/src/SeriesWiz.h
Examining data/wxmaxima-19.07.0/src/SlideShowCell.cpp
Examining data/wxmaxima-19.07.0/src/SlideShowCell.h
Examining data/wxmaxima-19.07.0/src/SqrtCell.cpp
Examining data/wxmaxima-19.07.0/src/SqrtCell.h
Examining data/wxmaxima-19.07.0/src/StatusBar.cpp
Examining data/wxmaxima-19.07.0/src/StatusBar.h
Examining data/wxmaxima-19.07.0/src/SubCell.cpp
Examining data/wxmaxima-19.07.0/src/SubCell.h
Examining data/wxmaxima-19.07.0/src/SubSupCell.cpp
Examining data/wxmaxima-19.07.0/src/SubSupCell.h
Examining data/wxmaxima-19.07.0/src/SubstituteWiz.cpp
Examining data/wxmaxima-19.07.0/src/SubstituteWiz.h
Examining data/wxmaxima-19.07.0/src/SumCell.cpp
Examining data/wxmaxima-19.07.0/src/SumCell.h
Examining data/wxmaxima-19.07.0/src/SumWiz.cpp
Examining data/wxmaxima-19.07.0/src/SumWiz.h
Examining data/wxmaxima-19.07.0/src/SystemWiz.cpp
Examining data/wxmaxima-19.07.0/src/SystemWiz.h
Examining data/wxmaxima-19.07.0/src/TableOfContents.cpp
Examining data/wxmaxima-19.07.0/src/TableOfContents.h
Examining data/wxmaxima-19.07.0/src/TextCell.cpp
Examining data/wxmaxima-19.07.0/src/TextCell.h
Examining data/wxmaxima-19.07.0/src/TextStyle.cpp
Examining data/wxmaxima-19.07.0/src/TextStyle.h
Examining data/wxmaxima-19.07.0/src/TipOfTheDay.cpp
Examining data/wxmaxima-19.07.0/src/TipOfTheDay.h
Examining data/wxmaxima-19.07.0/src/ToolBar.cpp
Examining data/wxmaxima-19.07.0/src/ToolBar.h
Examining data/wxmaxima-19.07.0/src/VariablesPane.cpp
Examining data/wxmaxima-19.07.0/src/VariablesPane.h
Examining data/wxmaxima-19.07.0/src/Worksheet.cpp
Examining data/wxmaxima-19.07.0/src/Worksheet.h
Examining data/wxmaxima-19.07.0/src/XmlInspector.cpp
Examining data/wxmaxima-19.07.0/src/XmlInspector.h
Examining data/wxmaxima-19.07.0/src/invalidImage.h
Examining data/wxmaxima-19.07.0/src/main.cpp
Examining data/wxmaxima-19.07.0/src/wxMathml.cpp
Examining data/wxmaxima-19.07.0/src/wxMathml.h
Examining data/wxmaxima-19.07.0/src/wxMaxima.cpp
Examining data/wxmaxima-19.07.0/src/wxMaxima.h
Examining data/wxmaxima-19.07.0/src/wxMaximaFrame.cpp
Examining data/wxmaxima-19.07.0/src/wxMaximaFrame.h
Examining data/wxmaxima-19.07.0/src/wxMaximaIcon.cpp
Examining data/wxmaxima-19.07.0/src/wxMaximaIcon.h

FINAL RESULTS:

data/wxmaxima-19.07.0/src/BTextCtrl.cpp:112:43:  [2] (misc) open:
  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).
void BTextCtrl::CloseParenthesis(wxString open, wxString close, bool fromOpen)
data/wxmaxima-19.07.0/src/BTextCtrl.cpp:129:27:  [2] (misc) open:
  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).
              (fromOpen ? open : wxT("")) + close +
data/wxmaxima-19.07.0/src/BTextCtrl.h:54:34:  [2] (misc) open:
  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).
  void CloseParenthesis(wxString open, wxString close, bool fromOpen);
data/wxmaxima-19.07.0/src/ParenCell.cpp:458:41:  [2] (misc) open:
  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).
          wxT("<mrow><mo>") + XMLescape(open) + wxT("</mo>") +
data/wxmaxima-19.07.0/src/wxMaxima.cpp:1028:5:  [2] (buffer) wchar_t:
  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.
    wchar_t sharedMemoryName[51];
data/wxmaxima-19.07.0/src/Configuration.cpp:554:10:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  return equal;
data/wxmaxima-19.07.0/src/Gen2Wiz.cpp:34:56:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
        wxDialog(parent, id, title, pos, size, style), equal(eq)
data/wxmaxima-19.07.0/src/Gen2Wiz.cpp:41:7:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  if (equal)
data/wxmaxima-19.07.0/src/Gen2Wiz.h:59:8:  [1] (buffer) equal:
  Function does not check the second iterator for over-read conditions
  (CWE-126). This function is often discouraged by most C++ coding standards
  in favor of its safer alternatives provided since C++14. Consider using a
  form of this function that checks the second iterator before potentially
  overflowing it.
  bool equal;
data/wxmaxima-19.07.0/src/wxMaxima.cpp:1036:5:  [1] (buffer) wcsncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
    wcsncpy(sharedMemoryName, sharedMemoryName1.wchar_str(), 50);
data/wxmaxima-19.07.0/src/wxMaxima.cpp:1044:7:  [1] (buffer) wcsncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
      wcsncpy(sharedMemoryName, sharedMemoryName2.wchar_str(), 50);
data/wxmaxima-19.07.0/src/wxMaxima.cpp:2412:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  if (wxFile(file, wxFile::read).Eof())

ANALYSIS SUMMARY:

Hits = 12
Lines analyzed = 185161 in approximately 12.58 seconds (14716 lines/second)
Physical Source Lines of Code (SLOC) = 168131
Hits@level = [0]   0 [1]   7 [2]   5 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  12 [1+]  12 [2+]   5 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.0713729 [1+] 0.0713729 [2+] 0.0297387 [3+]   0 [4+]   0 [5+]   0
Dot directories skipped = 3 (--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.