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/kup-backup-0.8.0/daemon/backupjob.cpp
Examining data/kup-backup-0.8.0/daemon/backupjob.h
Examining data/kup-backup-0.8.0/daemon/bupjob.cpp
Examining data/kup-backup-0.8.0/daemon/bupjob.h
Examining data/kup-backup-0.8.0/daemon/buprepairjob.cpp
Examining data/kup-backup-0.8.0/daemon/buprepairjob.h
Examining data/kup-backup-0.8.0/daemon/bupverificationjob.cpp
Examining data/kup-backup-0.8.0/daemon/bupverificationjob.h
Examining data/kup-backup-0.8.0/daemon/edexecutor.cpp
Examining data/kup-backup-0.8.0/daemon/edexecutor.h
Examining data/kup-backup-0.8.0/daemon/fsexecutor.cpp
Examining data/kup-backup-0.8.0/daemon/fsexecutor.h
Examining data/kup-backup-0.8.0/daemon/kupdaemon.cpp
Examining data/kup-backup-0.8.0/daemon/kupdaemon.h
Examining data/kup-backup-0.8.0/daemon/main.cpp
Examining data/kup-backup-0.8.0/daemon/planexecutor.cpp
Examining data/kup-backup-0.8.0/daemon/planexecutor.h
Examining data/kup-backup-0.8.0/daemon/rsyncjob.cpp
Examining data/kup-backup-0.8.0/daemon/rsyncjob.h
Examining data/kup-backup-0.8.0/dataengine/kupengine.cpp
Examining data/kup-backup-0.8.0/dataengine/kupengine.h
Examining data/kup-backup-0.8.0/dataengine/kupjob.cpp
Examining data/kup-backup-0.8.0/dataengine/kupjob.h
Examining data/kup-backup-0.8.0/dataengine/kupservice.cpp
Examining data/kup-backup-0.8.0/dataengine/kupservice.h
Examining data/kup-backup-0.8.0/filedigger/filedigger.cpp
Examining data/kup-backup-0.8.0/filedigger/filedigger.h
Examining data/kup-backup-0.8.0/filedigger/main.cpp
Examining data/kup-backup-0.8.0/filedigger/mergedvfs.cpp
Examining data/kup-backup-0.8.0/filedigger/mergedvfs.h
Examining data/kup-backup-0.8.0/filedigger/mergedvfsmodel.cpp
Examining data/kup-backup-0.8.0/filedigger/mergedvfsmodel.h
Examining data/kup-backup-0.8.0/filedigger/restoredialog.cpp
Examining data/kup-backup-0.8.0/filedigger/restoredialog.h
Examining data/kup-backup-0.8.0/filedigger/restorejob.cpp
Examining data/kup-backup-0.8.0/filedigger/restorejob.h
Examining data/kup-backup-0.8.0/filedigger/versionlistdelegate.cpp
Examining data/kup-backup-0.8.0/filedigger/versionlistdelegate.h
Examining data/kup-backup-0.8.0/filedigger/versionlistmodel.cpp
Examining data/kup-backup-0.8.0/filedigger/versionlistmodel.h
Examining data/kup-backup-0.8.0/kcm/backupplanwidget.cpp
Examining data/kup-backup-0.8.0/kcm/backupplanwidget.h
Examining data/kup-backup-0.8.0/kcm/dirselector.cpp
Examining data/kup-backup-0.8.0/kcm/dirselector.h
Examining data/kup-backup-0.8.0/kcm/driveselection.cpp
Examining data/kup-backup-0.8.0/kcm/driveselection.h
Examining data/kup-backup-0.8.0/kcm/driveselectiondelegate.cpp
Examining data/kup-backup-0.8.0/kcm/driveselectiondelegate.h
Examining data/kup-backup-0.8.0/kcm/folderselectionmodel.cpp
Examining data/kup-backup-0.8.0/kcm/folderselectionmodel.h
Examining data/kup-backup-0.8.0/kcm/kbuttongroup.cpp
Examining data/kup-backup-0.8.0/kcm/kbuttongroup.h
Examining data/kup-backup-0.8.0/kcm/kupkcm.cpp
Examining data/kup-backup-0.8.0/kcm/kupkcm.h
Examining data/kup-backup-0.8.0/kcm/planstatuswidget.cpp
Examining data/kup-backup-0.8.0/kcm/planstatuswidget.h
Examining data/kup-backup-0.8.0/kioslave/bupslave.cpp
Examining data/kup-backup-0.8.0/kioslave/bupvfs.cpp
Examining data/kup-backup-0.8.0/kioslave/bupvfs.h
Examining data/kup-backup-0.8.0/kioslave/vfshelpers.cpp
Examining data/kup-backup-0.8.0/kioslave/vfshelpers.h
Examining data/kup-backup-0.8.0/settings/backupplan.cpp
Examining data/kup-backup-0.8.0/settings/backupplan.h
Examining data/kup-backup-0.8.0/settings/kupsettings.cpp
Examining data/kup-backup-0.8.0/settings/kupsettings.h
Examining data/kup-backup-0.8.0/settings/kuputils.cpp
Examining data/kup-backup-0.8.0/settings/kuputils.h

FINAL RESULTS:

data/kup-backup-0.8.0/daemon/backupjob.cpp:23: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).
	mLogFile.open(QIODevice::WriteOnly | QIODevice::Truncate);
data/kup-backup-0.8.0/daemon/fsexecutor.cpp:142:18:  [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(!lMountsFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
data/kup-backup-0.8.0/daemon/fsexecutor.cpp:162:18:  [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).
	int lMountsFd = open("/proc/mounts", O_RDONLY);
data/kup-backup-0.8.0/filedigger/filedigger.cpp:51:18:  [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 FileDigger::open(const QModelIndex &pIndex) {
data/kup-backup-0.8.0/filedigger/filedigger.cpp:93:22:  [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(!lRepository->open()) {
data/kup-backup-0.8.0/filedigger/filedigger.cpp:130:69:  [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).
	connect(lVersionDelegate, SIGNAL(openRequested(QModelIndex)), SLOT(open(QModelIndex)));
data/kup-backup-0.8.0/filedigger/filedigger.h:28:7:  [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 open(const QModelIndex &pIndex);
data/kup-backup-0.8.0/filedigger/mergedvfs.cpp:215:24:  [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).
bool MergedRepository::open() {
data/kup-backup-0.8.0/filedigger/mergedvfs.h:80:7:  [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).
	bool open();
data/kup-backup-0.8.0/kioslave/bupslave.cpp:27:7:  [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 open(const QUrl &pUrl, QIODevice::OpenMode pMode) override;
data/kup-backup-0.8.0/kioslave/bupslave.cpp:152:16:  [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 BupSlave::open(const QUrl &pUrl, QIODevice::OpenMode pMode) {
data/kup-backup-0.8.0/kioslave/vfshelpers.cpp:31: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).
	mBuffer->open(QIODevice::ReadOnly);
data/kup-backup-0.8.0/kioslave/bupslave.cpp:28:7:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	void read(filesize_t pSize) override;
data/kup-backup-0.8.0/kioslave/bupslave.cpp:106:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(0 == (lRetVal = lFile->read(lResultArray))) {
data/kup-backup-0.8.0/kioslave/bupslave.cpp:188:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
void BupSlave::read(filesize_t pSize) {
data/kup-backup-0.8.0/kioslave/bupslave.cpp:195:51:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    while(pSize > 0 && 0 == (lRetVal = mOpenFile->read(lResultArray, static_cast<int>(pSize)))) {
data/kup-backup-0.8.0/kioslave/bupvfs.cpp:116:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	while(lContent.size() < 1000 && 0 == read(lNextData)) {
data/kup-backup-0.8.0/kioslave/bupvfs.cpp:137:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int BlobFile::read(QByteArray &pChunk, qint64 pReadSize) {
data/kup-backup-0.8.0/kioslave/bupvfs.cpp:253:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int ChunkFile::read(QByteArray &pChunk, qint64 pReadSize) {
data/kup-backup-0.8.0/kioslave/bupvfs.h:73:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	virtual int read(QByteArray &pChunk, qint64 pReadSize = -1) = 0;
data/kup-backup-0.8.0/kioslave/bupvfs.h:87:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(QByteArray &pChunk, qint64 pReadSize = -1) override;
data/kup-backup-0.8.0/kioslave/bupvfs.h:103:11:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
		if(0 == read(lArray)) {
data/kup-backup-0.8.0/kioslave/bupvfs.h:116:6:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	int read(QByteArray &pChunk, qint64 pReadSize = -1) override;
data/kup-backup-0.8.0/kioslave/vfshelpers.cpp:80:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
	if(mBuffer->read(pByteArray.data(), pByteArray.length()) < pByteArray.length()) {

ANALYSIS SUMMARY:

Hits = 24
Lines analyzed = 9077 in approximately 0.46 seconds (19543 lines/second)
Physical Source Lines of Code (SLOC) = 7507
Hits@level = [0]   1 [1]  12 [2]  12 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  25 [1+]  24 [2+]  12 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 3.33023 [1+] 3.19702 [2+] 1.59851 [3+]   0 [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.