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/palapeli-20.08.0/libpala/slicerproperty.h Examining data/palapeli-20.08.0/libpala/slicer.h Examining data/palapeli-20.08.0/libpala/slicer.cpp Examining data/palapeli-20.08.0/libpala/slicermode.h Examining data/palapeli-20.08.0/libpala/slicermode.cpp Examining data/palapeli-20.08.0/libpala/slicerpropertyset.cpp Examining data/palapeli-20.08.0/libpala/slicerjob.h Examining data/palapeli-20.08.0/libpala/slicerpropertyset.h Examining data/palapeli-20.08.0/libpala/slicerjob.cpp Examining data/palapeli-20.08.0/libpala/slicerproperty.cpp Examining data/palapeli-20.08.0/mime/thumbnail-creator.cpp Examining data/palapeli-20.08.0/slicers/goldberg/goldberg-engine.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid-voronoi.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid.h Examining data/palapeli-20.08.0/slicers/goldberg/pointfinder.h Examining data/palapeli-20.08.0/slicers/goldberg/utilities.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid-rect.cpp Examining data/palapeli-20.08.0/slicers/goldberg/utilities.h Examining data/palapeli-20.08.0/slicers/goldberg/pointfinder.cpp Examining data/palapeli-20.08.0/slicers/goldberg/goldberg-engine.h Examining data/palapeli-20.08.0/slicers/goldberg/slicer-goldberg.h Examining data/palapeli-20.08.0/slicers/goldberg/grid-cairo.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid-hex.cpp Examining data/palapeli-20.08.0/slicers/goldberg/slicer-goldberg.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid-preset.cpp Examining data/palapeli-20.08.0/slicers/goldberg/grid-rotrex.cpp Examining data/palapeli-20.08.0/slicers/slicer-jigsaw.cpp Examining data/palapeli-20.08.0/slicers/slicer-jigsaw.h Examining data/palapeli-20.08.0/slicers/slicer-rect.h Examining data/palapeli-20.08.0/slicers/slicer-rect.cpp Examining data/palapeli-20.08.0/src/engine/piece.h Examining data/palapeli-20.08.0/src/engine/constraintvisualizer.cpp Examining data/palapeli-20.08.0/src/engine/puzzlepreview.h Examining data/palapeli-20.08.0/src/engine/view.h Examining data/palapeli-20.08.0/src/engine/piece.cpp Examining data/palapeli-20.08.0/src/engine/gameplay.cpp Examining data/palapeli-20.08.0/src/engine/mergegroup.h Examining data/palapeli-20.08.0/src/engine/mergegroup.cpp Examining data/palapeli-20.08.0/src/engine/interactors.h Examining data/palapeli-20.08.0/src/engine/interactor.cpp Examining data/palapeli-20.08.0/src/engine/view.cpp Examining data/palapeli-20.08.0/src/engine/gameplay.h Examining data/palapeli-20.08.0/src/engine/texturehelper.cpp Examining data/palapeli-20.08.0/src/engine/puzzlepreview.cpp Examining data/palapeli-20.08.0/src/engine/scene.h Examining data/palapeli-20.08.0/src/engine/mathtricks.h Examining data/palapeli-20.08.0/src/engine/constraintinteractor.cpp Examining data/palapeli-20.08.0/src/engine/interactors.cpp Examining data/palapeli-20.08.0/src/engine/basics.h Examining data/palapeli-20.08.0/src/engine/trigger.cpp Examining data/palapeli-20.08.0/src/engine/constraintinteractor.h Examining data/palapeli-20.08.0/src/engine/interactormanager.cpp Examining data/palapeli-20.08.0/src/engine/scene.cpp Examining data/palapeli-20.08.0/src/engine/texturehelper.h Examining data/palapeli-20.08.0/src/engine/interactor.h Examining data/palapeli-20.08.0/src/engine/zoomwidget.cpp Examining data/palapeli-20.08.0/src/engine/piecevisuals.h Examining data/palapeli-20.08.0/src/engine/piecevisuals.cpp Examining data/palapeli-20.08.0/src/engine/triggermapper.cpp Examining data/palapeli-20.08.0/src/engine/piece_p.h Examining data/palapeli-20.08.0/src/engine/zoomwidget.h Examining data/palapeli-20.08.0/src/engine/triggermapper.h Examining data/palapeli-20.08.0/src/engine/interactormanager.h Examining data/palapeli-20.08.0/src/engine/constraintvisualizer.h Examining data/palapeli-20.08.0/src/engine/trigger.h Examining data/palapeli-20.08.0/src/importhelper.h Examining data/palapeli-20.08.0/src/importhelper.cpp Examining data/palapeli-20.08.0/src/file-io/collection-delegate.cpp Examining data/palapeli-20.08.0/src/file-io/collection_p.h Examining data/palapeli-20.08.0/src/file-io/collection-delegate.h Examining data/palapeli-20.08.0/src/file-io/components-collectionstorage.cpp Examining data/palapeli-20.08.0/src/file-io/puzzlestructs.h Examining data/palapeli-20.08.0/src/file-io/collection.cpp Examining data/palapeli-20.08.0/src/file-io/components-retailstorage.cpp Examining data/palapeli-20.08.0/src/file-io/puzzle.h Examining data/palapeli-20.08.0/src/file-io/puzzle.cpp Examining data/palapeli-20.08.0/src/file-io/components-directorystorage.cpp Examining data/palapeli-20.08.0/src/file-io/components-creationcontext.cpp Examining data/palapeli-20.08.0/src/file-io/components-copy.cpp Examining data/palapeli-20.08.0/src/file-io/collection.h Examining data/palapeli-20.08.0/src/file-io/components-archivestorage.cpp Examining data/palapeli-20.08.0/src/file-io/collection-view.h Examining data/palapeli-20.08.0/src/file-io/collection-view.cpp Examining data/palapeli-20.08.0/src/file-io/components.h Examining data/palapeli-20.08.0/src/creator/propertywidget_p.h Examining data/palapeli-20.08.0/src/creator/puzzlecreator.h Examining data/palapeli-20.08.0/src/creator/slicerselector.h Examining data/palapeli-20.08.0/src/creator/puzzlecreator.cpp Examining data/palapeli-20.08.0/src/creator/propertywidget.cpp Examining data/palapeli-20.08.0/src/creator/slicerconfwidget.cpp Examining data/palapeli-20.08.0/src/creator/slicerselector.cpp Examining data/palapeli-20.08.0/src/creator/slicerconfwidget.h Examining data/palapeli-20.08.0/src/creator/propertywidget.h Examining data/palapeli-20.08.0/src/main.cpp Examining data/palapeli-20.08.0/src/window/mainwindow.h Examining data/palapeli-20.08.0/src/window/loadingwidget.cpp Examining data/palapeli-20.08.0/src/window/loadingwidget.h Examining data/palapeli-20.08.0/src/window/puzzletablewidget.h Examining data/palapeli-20.08.0/src/window/pieceholder.h Examining data/palapeli-20.08.0/src/window/mainwindow.cpp Examining data/palapeli-20.08.0/src/window/pieceholder.cpp Examining data/palapeli-20.08.0/src/window/puzzletablewidget.cpp Examining data/palapeli-20.08.0/src/config/configdialog.h Examining data/palapeli-20.08.0/src/config/configdialog.cpp Examining data/palapeli-20.08.0/src/config/triggerlistview.cpp Examining data/palapeli-20.08.0/src/config/configdialog_p.h Examining data/palapeli-20.08.0/src/config/mouseinputbutton.cpp Examining data/palapeli-20.08.0/src/config/triggerlistview.h Examining data/palapeli-20.08.0/src/config/triggerconfigwidget.cpp Examining data/palapeli-20.08.0/src/config/mouseinputbutton_p.h Examining data/palapeli-20.08.0/src/config/triggerconfigwidget.h Examining data/palapeli-20.08.0/src/config/triggerlistview_p.h Examining data/palapeli-20.08.0/src/config/elidinglabel.cpp Examining data/palapeli-20.08.0/src/config/elidinglabel.h Examining data/palapeli-20.08.0/src/config/mouseinputbutton.h FINAL RESULTS: data/palapeli-20.08.0/src/engine/piece.cpp:299:30: [3] (random) random: 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. const QSizeF& area, bool random) data/palapeli-20.08.0/src/engine/piece.cpp:305:6: [3] (random) random: 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. if (random) { data/palapeli-20.08.0/src/engine/piece.h:88:31: [3] (random) random: 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. const QSizeF& area, bool random); data/palapeli-20.08.0/mime/thumbnail-creator.cpp:47:11: [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). if (!tar.open(QIODevice::ReadOnly)) data/palapeli-20.08.0/src/file-io/components-archivestorage.cpp:35:12: [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). if (!tar.open(QIODevice::ReadOnly)) data/palapeli-20.08.0/src/file-io/components-archivestorage.cpp:56:11: [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). if (!tar.open(QIODevice::WriteOnly)) ANALYSIS SUMMARY: Hits = 6 Lines analyzed = 15996 in approximately 0.48 seconds (33604 lines/second) Physical Source Lines of Code (SLOC) = 10778 Hits@level = [0] 0 [1] 0 [2] 3 [3] 3 [4] 0 [5] 0 Hits@level+ = [0+] 6 [1+] 6 [2+] 6 [3+] 3 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 0.55669 [1+] 0.55669 [2+] 0.55669 [3+] 0.278345 [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.