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/kcm-fcitx5-5.0.0/layout/deadmapdata.h
Examining data/kcm-fcitx5-5.0.0/layout/keyboardlayoutwidget.cpp
Examining data/kcm-fcitx5-5.0.0/layout/keyboardlayoutwidget.h
Examining data/kcm-fcitx5-5.0.0/layout/main.cpp
Examining data/kcm-fcitx5-5.0.0/src/configtool/main.cpp
Examining data/kcm-fcitx5-5.0.0/src/configtool/mainwindow.cpp
Examining data/kcm-fcitx5-5.0.0/src/configtool/mainwindow.h
Examining data/kcm-fcitx5-5.0.0/src/kcm/main.cpp
Examining data/kcm-fcitx5-5.0.0/src/kcm/main.h
Examining data/kcm-fcitx5-5.0.0/src/kcm/qtkeytrans.cpp
Examining data/kcm-fcitx5-5.0.0/src/kcm/qtkeytrans.h
Examining data/kcm-fcitx5-5.0.0/src/kcm/qtkeytransdata.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/addonmodel.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/addonmodel.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/dbusprovider.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/dbusprovider.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/font.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/font.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/imconfig.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/imconfig.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/iso639.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/iso639.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/layoutmodel.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/layoutmodel.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/layoutprovider.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/layoutprovider.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/logging.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/logging.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/model.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configlib/model.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/addonselector.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/addonselector.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/categoryhelper.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/categoryhelper.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/configwidget.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/configwidget.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/erroroverlay.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/erroroverlay.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/fontbutton.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/fontbutton.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/i18nhelper.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/impage.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/impage.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/keylistwidget.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/keylistwidget.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/layoutselector.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/layoutselector.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/listoptionwidget.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/listoptionwidget.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/optionwidget.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/optionwidget.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/varianthelper.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/varianthelper.h
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/verticalscrollarea.cpp
Examining data/kcm-fcitx5-5.0.0/src/lib/configwidgetslib/verticalscrollarea.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/main.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/mainwindow.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/mainwindow.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/progresspage.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/progresspage.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/taskpage.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/taskpage.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/welcomepage.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/app/welcomepage.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/global/globalconfigmigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/global/globalconfigmigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/kkc/kkcmigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/kkc/kkcmigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/callbackrunner.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/callbackrunner.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/configmigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/configmigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/copydirectory.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/copydirectory.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/dbuscaller.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/dbuscaller.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/dbuswatcher.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/dbuswatcher.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/log.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/log.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migratorfactory.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migratorfactory.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migratorfactory_p.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migratorfactoryplugin.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/migratorfactoryplugin.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/pipeline.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/pipeline.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/pipelinejob.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/pipelinejob.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/processrunner.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/processrunner.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/renamefile.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/lib/renamefile.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/pinyin/pinyinmigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/pinyin/pinyinmigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/rime/rimemigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/rime/rimemigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/skk/skkmigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/skk/skkmigrator.h
Examining data/kcm-fcitx5-5.0.0/src/migrator/table/tablemigrator.cpp
Examining data/kcm-fcitx5-5.0.0/src/migrator/table/tablemigrator.h

FINAL RESULTS:

data/kcm-fcitx5-5.0.0/src/lib/configlib/iso639.cpp:21:10:  [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/kcm-fcitx5-5.0.0/src/migrator/kkc/kkcmigrator.cpp:64: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).
                file.open(ruleFile.fd(), QIODevice::ReadOnly)) {
data/kcm-fcitx5-5.0.0/src/migrator/lib/copydirectory.cpp:53:5:  [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.
    char buffer[4096];
data/kcm-fcitx5-5.0.0/src/migrator/lib/copydirectory.cpp:105: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 (!from.open(QIODevice::ReadOnly)) {
data/kcm-fcitx5-5.0.0/src/migrator/lib/copydirectory.cpp:108: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).
        if (!to.open(QIODevice::WriteOnly)) {
data/kcm-fcitx5-5.0.0/src/migrator/skk/skkmigrator.cpp:64: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).
                file.open(ruleFile.fd(), QIODevice::ReadOnly)) {

ANALYSIS SUMMARY:

Hits = 6
Lines analyzed = 11888 in approximately 0.35 seconds (34456 lines/second)
Physical Source Lines of Code (SLOC) = 9566
Hits@level = [0]   0 [1]   0 [2]   6 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]   6 [1+]   6 [2+]   6 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.627221 [1+] 0.627221 [2+] 0.627221 [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.