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/sachesi-2.0.4+ds/src/apps.cpp
Examining data/sachesi-2.0.4+ds/src/apps.h
Examining data/sachesi-2.0.4+ds/src/autoloaderwriter.h
Examining data/sachesi-2.0.4+ds/src/backupinfo.cpp
Examining data/sachesi-2.0.4+ds/src/backupinfo.h
Examining data/sachesi-2.0.4+ds/src/blitzinfo.h
Examining data/sachesi-2.0.4+ds/src/boot.cpp
Examining data/sachesi-2.0.4+ds/src/boot.h
Examining data/sachesi-2.0.4+ds/src/carrierinfo.h
Examining data/sachesi-2.0.4+ds/src/deviceinfo.h
Examining data/sachesi-2.0.4+ds/src/downloadinfo.h
Examining data/sachesi-2.0.4+ds/src/fs/fs.cpp
Examining data/sachesi-2.0.4+ds/src/fs/fs.h
Examining data/sachesi-2.0.4+ds/src/fs/ifs.cpp
Examining data/sachesi-2.0.4+ds/src/fs/ifs.h
Examining data/sachesi-2.0.4+ds/src/fs/qnx6.cpp
Examining data/sachesi-2.0.4+ds/src/fs/rcfs.cpp
Examining data/sachesi-2.0.4+ds/src/fs/rcfs.h
Examining data/sachesi-2.0.4+ds/src/fs/qnx6.h
Examining data/sachesi-2.0.4+ds/src/installer.cpp
Examining data/sachesi-2.0.4+ds/src/installer_auth.cpp
Examining data/sachesi-2.0.4+ds/src/installer_establish.cpp
Examining data/sachesi-2.0.4+ds/src/installer_qml.cpp
Examining data/sachesi-2.0.4+ds/src/ports.cpp
Examining data/sachesi-2.0.4+ds/src/ports.h
Examining data/sachesi-2.0.4+ds/src/sachesi.cpp
Examining data/sachesi-2.0.4+ds/src/search/discoveredrelease.h
Examining data/sachesi-2.0.4+ds/src/search/mainnet.cpp
Examining data/sachesi-2.0.4+ds/src/search/mainnet.h
Examining data/sachesi-2.0.4+ds/src/search/scanner.cpp
Examining data/sachesi-2.0.4+ds/src/search/scanner.h
Examining data/sachesi-2.0.4+ds/src/splitter.cpp
Examining data/sachesi-2.0.4+ds/src/splitter.h
Examining data/sachesi-2.0.4+ds/src/translator.h
Examining data/sachesi-2.0.4+ds/src/blitzinfo.cpp
Examining data/sachesi-2.0.4+ds/src/installer.h

FINAL RESULTS:

data/sachesi-2.0.4+ds/src/search/mainnet.cpp:284:13:  [4] (format) sprintf:
  Potential format string problem (CWE-134). Make format string constant.
    homeNPC.sprintf("%03d%03d%d", carrier, country, carrier ? 30 : 60);
data/sachesi-2.0.4+ds/src/autoloaderwriter.h:51:9:  [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).
        open(QIODevice::WriteOnly);
data/sachesi-2.0.4+ds/src/autoloaderwriter.h:53:13:  [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).
        cap.open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/blitzinfo.cpp:27:19:  [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 (!manifest.open(QIODevice::ReadOnly))
data/sachesi-2.0.4+ds/src/boot.cpp:104:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy((unsigned char*)buffer.data()+8, (const unsigned char*)aData->constData(), aDataSize);
data/sachesi-2.0.4+ds/src/boot.cpp:142:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy(aHeader, (const unsigned char*)buffer.constData(), 8);
data/sachesi-2.0.4+ds/src/boot.cpp:144:9:  [2] (buffer) memcpy:
  Does not check for buffer overflows when copying to destination (CWE-120).
  Make sure destination can always hold the source data.
        memcpy((unsigned char*)aData->data(), (const unsigned char*)buffer.constData() + 8, transferred - 8);
data/sachesi-2.0.4+ds/src/boot.cpp:309:14:  [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).
        info.open(QIODevice::WriteOnly);
data/sachesi-2.0.4+ds/src/boot.cpp:311: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).
        bufferStream.open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/downloadinfo.h:244:21:  [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).
        _updateFile.open(QIODevice::WriteOnly | QIODevice::Append);
data/sachesi-2.0.4+ds/src/fs/fs.cpp:43: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).
        _file->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/fs/fs.cpp:110: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 (!newFile.open(QIODevice::WriteOnly))
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:175:45:  [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).
                                currentZip->open(QuaZip::mdCreate);
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:281:26:  [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).
                zipFile->open(QIODevice::WriteOnly, newInfo);
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:284:26:  [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).
                newFile->open(QIODevice::WriteOnly);
data/sachesi-2.0.4+ds/src/fs/rcfs.cpp:157:25:  [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).
                newFile.open(QFile::WriteOnly);
data/sachesi-2.0.4+ds/src/installer.cpp:47:14:  [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).
    logFile->open(); // This will autoclose and autoremove by default when ~InstallNet
data/sachesi-2.0.4+ds/src/installer.cpp:120:19:  [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 (!manifest.open(QIODevice::ReadOnly))
data/sachesi-2.0.4+ds/src/installer.cpp:226:17:  [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).
        testZip.open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/installer.cpp:235:13:  [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).
        zip.open(QuaZip::mdUnzip);
data/sachesi-2.0.4+ds/src/installer.cpp:257:23:  [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 (!file.open(QIODevice::ReadOnly))
data/sachesi-2.0.4+ds/src/installer.cpp:262:32:  [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 (!writeFile.open(QIODevice::WriteOnly)) {
data/sachesi-2.0.4+ds/src/installer.cpp:448: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).
        currentBackupZip->open(QuaZip::mdCreate);
data/sachesi-2.0.4+ds/src/installer.cpp:461:19:  [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).
        manifest->open(QIODevice::WriteOnly, newInfo);
data/sachesi-2.0.4+ds/src/installer.cpp:546:23:  [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).
    currentBackupZip->open(QuaZip::mdUnzip);
data/sachesi-2.0.4+ds/src/installer.cpp:1081: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).
        rtasData.open(QIODevice::WriteOnly | QIODevice::Text);
data/sachesi-2.0.4+ds/src/installer.cpp:1161:29:  [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).
            compressedFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/installer.cpp:1234: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).
                        compressedFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/installer.cpp:1328:23:  [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).
            _zipFile->open(QIODevice::WriteOnly, newInfo);
data/sachesi-2.0.4+ds/src/installer.cpp:1415:31:  [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).
                    _zipFile->open(QIODevice::WriteOnly, newInfo);
data/sachesi-2.0.4+ds/src/installer.cpp:1463:15:  [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).
    _zipFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/installer.cpp:1585: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).
    installedTxt.open(QIODevice::WriteOnly | QIODevice::Text);
data/sachesi-2.0.4+ds/src/ports.cpp:169: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 (!displayFile.open(QIODevice::WriteOnly | QIODevice::Text))
data/sachesi-2.0.4+ds/src/search/mainnet.cpp:79:21:  [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).
            capFile.open(QIODevice::WriteOnly | QIODevice::Append);
data/sachesi-2.0.4+ds/src/splitter.cpp:90:21:  [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).
    autoloaderFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/splitter.cpp:211:28:  [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).
            tmpFile.at(i)->open(QIODevice::WriteOnly);
data/sachesi-2.0.4+ds/src/splitter.cpp:236: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).
    if (!file->open(QIODevice::ReadOnly)) {
data/sachesi-2.0.4+ds/src/splitter.cpp:245:13:  [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).
    barFile.open(QuaZip::mdUnzip);
data/sachesi-2.0.4+ds/src/splitter.cpp:252:25:  [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).
            signedFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/splitter.cpp:267: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).
                    outputSigned.open(QIODevice::WriteOnly);
data/sachesi-2.0.4+ds/src/splitter.cpp:292:21:  [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 (!imageFile->open(QIODevice::ReadOnly)) {
data/sachesi-2.0.4+ds/src/splitter.cpp:324: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).
    buffer.open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/splitter.h:206:26:  [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).
                newFile->open(QIODevice::ReadOnly);
data/sachesi-2.0.4+ds/src/splitter.h:210:25:  [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).
                barFile.open(QuaZip::mdUnzip);
data/sachesi-2.0.4+ds/src/splitter.h:216:42:  [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 (!signedFile->open(QIODevice::ReadOnly)) {
data/sachesi-2.0.4+ds/src/autoloaderwriter.h:89:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            int writeSize = write(file->read(FAST_BUFFER_LEN));
data/sachesi-2.0.4+ds/src/boot.cpp:320:101:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        info.write(QByteArray("Hardware ID: 0x") + QByteArray::number(pin, 16) + " " + bufferStream.read(64).split('\0').first() + "\n");
data/sachesi-2.0.4+ds/src/boot.cpp:321:62:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        info.write(QByteArray("Build User: ") + bufferStream.read(16).split('\0').first() + "\n");
data/sachesi-2.0.4+ds/src/boot.cpp:322:62:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        info.write(QByteArray("Build Date: ") + bufferStream.read(16).split('\0').first() + "\n");
data/sachesi-2.0.4+ds/src/boot.cpp:323:62:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        info.write(QByteArray("Build Time: ") + bufferStream.read(16).split('\0').first() + "\n");
data/sachesi-2.0.4+ds/src/fs/fs.cpp:114:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        int diff = newFile.write(_file->read(qMin(BUFFER_LEN, endSize - curSize)));
data/sachesi-2.0.4+ds/src/fs/fs.h:89:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    void increaseCurSize(qint64 read) {
data/sachesi-2.0.4+ds/src/fs/fs.h:90:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (read <= 0)
data/sachesi-2.0.4+ds/src/fs/fs.h:92:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        curSize += read;
data/sachesi-2.0.4+ds/src/fs/fs.h:93:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        emit sizeChanged(read);
data/sachesi-2.0.4+ds/src/fs/ifs.cpp:119:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    if (_file->read(4) != QByteArray::fromHex("EB7EFF00")) {
data/sachesi-2.0.4+ds/src/fs/ifs.cpp:123:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (_file->read(4) != QByteArray::fromHex("EB7EFF00")) {
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:28:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        QByteArray tmp = _file->read(readlen);
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:89:25:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    ret.second = _file->read(count);
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:146:64:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                                    manifestDump.append(_file->read(len));
data/sachesi-2.0.4+ds/src/fs/qnx6.cpp:293:45:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    QByteArray tmp = _file->read(len);
data/sachesi-2.0.4+ds/src/fs/rcfs.cpp:112:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            _file->read(readData, size);
data/sachesi-2.0.4+ds/src/fs/rcfs.cpp:122:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            QByteArray data = _file->read(qMin(BUFFER_LEN, i));
data/sachesi-2.0.4+ds/src/fs/rcfs.cpp:170:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    _file->read(readData, size);
data/sachesi-2.0.4+ds/src/installer.cpp:227:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (testZip.read(2).toHex() != "504b") {
data/sachesi-2.0.4+ds/src/installer.cpp:260:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (file.read(2).toHex() == "504b") {
data/sachesi-2.0.4+ds/src/installer.cpp:269:42:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    writeFile.write(file.read(8192000));
data/sachesi-2.0.4+ds/src/splitter.cpp:97:42:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        QByteArray tmp = autoloaderFile->read(BUFFER_LEN);
data/sachesi-2.0.4+ds/src/splitter.cpp:150:33:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            if (autoloaderFile->read(4) == QByteArray("pfcq",4)) {
data/sachesi-2.0.4+ds/src/splitter.cpp:216:39:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                tmp = autoloaderFile->read(read_len);
data/sachesi-2.0.4+ds/src/splitter.cpp:272:43:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        tmp = signedFile->read(read_len);
data/sachesi-2.0.4+ds/src/splitter.cpp:314:14:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    if (dev->read(4) != QByteArray("mfcq", 4)) {
data/sachesi-2.0.4+ds/src/splitter.cpp:322:38:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    QByteArray partitionTable = dev->read(4000);
data/sachesi-2.0.4+ds/src/splitter.cpp:363:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        if (dev->read(4) == QByteArray("pfcq",4)) {
data/sachesi-2.0.4+ds/src/splitter.h:69:37:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        QByteArray header = device->read(4);
data/sachesi-2.0.4+ds/src/splitter.h:256:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        emit progressChanged((int)(read / maxSize));
data/sachesi-2.0.4+ds/src/splitter.h:274:36:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        emit progressChanged((int)(read / maxSize));
data/sachesi-2.0.4+ds/src/splitter.h:283:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    quint64 read, maxSize;

ANALYSIS SUMMARY:

Hits = 78
Lines analyzed = 7582 in approximately 0.21 seconds (35873 lines/second)
Physical Source Lines of Code (SLOC) = 6009
Hits@level = [0]   0 [1]  33 [2]  44 [3]   0 [4]   1 [5]   0
Hits@level+ = [0+]  78 [1+]  78 [2+]  45 [3+]   1 [4+]   1 [5+]   0
Hits/KSLOC@level+ = [0+] 12.9805 [1+] 12.9805 [2+] 7.48877 [3+] 0.166417 [4+] 0.166417 [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.