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.