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/kdegraphics-mobipocket-20.04.3/thumbnailers/mobithumbnail.cpp
Examining data/kdegraphics-mobipocket-20.04.3/thumbnailers/mobithumbnail.h
Examining data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.cpp
Examining data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.h
Examining data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp
Examining data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp
Examining data/kdegraphics-mobipocket-20.04.3/lib/decompressor.h
Examining data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.h

FINAL RESULTS:

data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp:20:23:  [2] (buffer) char:
  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.
static const unsigned char TOKEN_CODE[256] = {
data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp:184:5:  [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(dict1,huff1.data()+off1, 256*4);
data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp:185:5:  [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(dict2,huff1.data()+off2, 64*4);    
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:191: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).
        buf.open(QIODevice::ReadOnly);
data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.cpp:17:8:  [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).
    d->open(QIODevice::ReadOnly);
data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp:65:13:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    quint32 read() {
data/kdegraphics-mobipocket-20.04.3/lib/decompressor.cpp:202:27:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        quint32 dw=reader.read();
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:21:20:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
QByteArray Stream::read(int len)
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:25:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    len=read(ret.data(),len);
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:34:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    while (!(bit=read(4096)).isEmpty()) ret+=bit;
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:56:46:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        fileType=QString::fromLatin1(device->read(8));
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:59:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        device->read((char*)&word,2);
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:63:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            device->read((char*)&dword,4);
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:65:21:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            device->read((char*)&dword,4);
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.cpp:90:23:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    return d->device->read(d->recordOffsets[i+1]-offset);
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.h:31:17:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    virtual int read(char* buf, int size)=0;
data/kdegraphics-mobipocket-20.04.3/lib/mobipocket.h:35:16:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    QByteArray read(int len);
data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.cpp:25:18:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
int QFileStream::read(char* buf, int size)
data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.cpp:27:15:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    return d->read(buf,size);
data/kdegraphics-mobipocket-20.04.3/lib/qfilestream.h:23:9:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
    int read(char* buf, int size) override;

ANALYSIS SUMMARY:

Hits = 20
Lines analyzed = 787 in approximately 0.06 seconds (13130 lines/second)
Physical Source Lines of Code (SLOC) = 586
Hits@level = [0]   0 [1]  15 [2]   5 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  20 [1+]  20 [2+]   5 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 34.1297 [1+] 34.1297 [2+] 8.53242 [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.