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/akonadi-calendar-20.08.2/autotests/kcalcoreserializertest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/fetchjobcalendartest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/unittestbase.cpp
Examining data/akonadi-calendar-20.08.2/autotests/calendarbasetest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/etmcalendartest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/itiphandlertest.h
Examining data/akonadi-calendar-20.08.2/autotests/mailclienttest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/itiphandlertest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/helper.cpp
Examining data/akonadi-calendar-20.08.2/autotests/helper.h
Examining data/akonadi-calendar-20.08.2/autotests/todopurgertest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/historytest.h
Examining data/akonadi-calendar-20.08.2/autotests/incidencechangertest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/historytest.cpp
Examining data/akonadi-calendar-20.08.2/autotests/calendarbasetest.h
Examining data/akonadi-calendar-20.08.2/autotests/unittestbase.h
Examining data/akonadi-calendar-20.08.2/autotests/etmcalendartest.h
Examining data/akonadi-calendar-20.08.2/autotests/todopurgertest.h
Examining data/akonadi-calendar-20.08.2/examples/etmcalendar/main.cpp
Examining data/akonadi-calendar-20.08.2/serializers/akonadi_serializer_kcalcore.h
Examining data/akonadi-calendar-20.08.2/serializers/akonadi_serializer_kcalcore.cpp
Examining data/akonadi-calendar-20.08.2/src/calendarbase.cpp
Examining data/akonadi-calendar-20.08.2/src/scheduler_p.h
Examining data/akonadi-calendar-20.08.2/src/publishdialog_p.h
Examining data/akonadi-calendar-20.08.2/src/calfilterproxymodel_p.cpp
Examining data/akonadi-calendar-20.08.2/src/etmcalendar_p.h
Examining data/akonadi-calendar-20.08.2/src/etmcalendar.cpp
Examining data/akonadi-calendar-20.08.2/src/calfilterpartstatusproxymodel_p.cpp
Examining data/akonadi-calendar-20.08.2/src/publishdialog.h
Examining data/akonadi-calendar-20.08.2/src/standardcalendaractionmanager.cpp
Examining data/akonadi-calendar-20.08.2/src/mailclient_p.h
Examining data/akonadi-calendar-20.08.2/src/calendarclipboard.h
Examining data/akonadi-calendar-20.08.2/src/itiphandler_p.cpp
Examining data/akonadi-calendar-20.08.2/src/publishdialog.cpp
Examining data/akonadi-calendar-20.08.2/src/standardcalendaractionmanager.h
Examining data/akonadi-calendar-20.08.2/src/incidencechanger_p.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusyproviderbase_p.h
Examining data/akonadi-calendar-20.08.2/src/etmcalendar.h
Examining data/akonadi-calendar-20.08.2/src/utils_p.cpp
Examining data/akonadi-calendar-20.08.2/src/fetchjobcalendar.h
Examining data/akonadi-calendar-20.08.2/src/itiphandlerhelper_p.h
Examining data/akonadi-calendar-20.08.2/src/mailscheduler_p.h
Examining data/akonadi-calendar-20.08.2/src/history.h
Examining data/akonadi-calendar-20.08.2/src/todopurger.h
Examining data/akonadi-calendar-20.08.2/src/freebusydownloadjob_p.h
Examining data/akonadi-calendar-20.08.2/src/calendarclipboard.cpp
Examining data/akonadi-calendar-20.08.2/src/calendarclipboard_p.h
Examining data/akonadi-calendar-20.08.2/src/scheduler_p.cpp
Examining data/akonadi-calendar-20.08.2/src/kcolumnfilterproxymodel.cpp
Examining data/akonadi-calendar-20.08.2/src/incidencechanger.h
Examining data/akonadi-calendar-20.08.2/src/itiphandler_p.h
Examining data/akonadi-calendar-20.08.2/src/freebusyproviderbase.cpp
Examining data/akonadi-calendar-20.08.2/src/publishdialog_p.cpp
Examining data/akonadi-calendar-20.08.2/src/blockalarmsattribute.cpp
Examining data/akonadi-calendar-20.08.2/src/itiphandler.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusymanager.cpp
Examining data/akonadi-calendar-20.08.2/src/kcolumnfilterproxymodel_p.h
Examining data/akonadi-calendar-20.08.2/src/todopurger.cpp
Examining data/akonadi-calendar-20.08.2/src/akonadi-calendar_tests_export.h
Examining data/akonadi-calendar-20.08.2/src/icalimporter.h
Examining data/akonadi-calendar-20.08.2/src/incidencechanger_p.h
Examining data/akonadi-calendar-20.08.2/src/fetchjobcalendar.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusyproviderbase.h
Examining data/akonadi-calendar-20.08.2/src/todopurger_p.h
Examining data/akonadi-calendar-20.08.2/src/icalimporter.cpp
Examining data/akonadi-calendar-20.08.2/src/incidencefetchjob_p.cpp
Examining data/akonadi-calendar-20.08.2/src/itiphandlerhelper_p.cpp
Examining data/akonadi-calendar-20.08.2/src/utils_p.h
Examining data/akonadi-calendar-20.08.2/src/mailclient_p.cpp
Examining data/akonadi-calendar-20.08.2/src/calfilterpartstatusproxymodel_p.h
Examining data/akonadi-calendar-20.08.2/src/itiphandler.h
Examining data/akonadi-calendar-20.08.2/src/blockalarmsattribute.h
Examining data/akonadi-calendar-20.08.2/src/calfilterproxymodel_p.h
Examining data/akonadi-calendar-20.08.2/src/mailscheduler_p.cpp
Examining data/akonadi-calendar-20.08.2/src/incidencechanger.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusymanager_p.h
Examining data/akonadi-calendar-20.08.2/src/calendarbase_p.h
Examining data/akonadi-calendar-20.08.2/src/incidencefetchjob_p.h
Examining data/akonadi-calendar-20.08.2/src/icalimporter_p.h
Examining data/akonadi-calendar-20.08.2/src/fetchjobcalendar_p.h
Examining data/akonadi-calendar-20.08.2/src/calendarbase.h
Examining data/akonadi-calendar-20.08.2/src/history_p.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusydownloadjob_p.cpp
Examining data/akonadi-calendar-20.08.2/src/freebusymanager.h
Examining data/akonadi-calendar-20.08.2/src/calendarmodel.cpp
Examining data/akonadi-calendar-20.08.2/src/calendarmodel_p.h
Examining data/akonadi-calendar-20.08.2/src/history.cpp
Examining data/akonadi-calendar-20.08.2/src/history_p.h

FINAL RESULTS:

data/akonadi-calendar-20.08.2/autotests/unittestbase.cpp:160: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).
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
data/akonadi-calendar-20.08.2/src/freebusymanager.cpp:814: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 (tempFile.open()) {
data/akonadi-calendar-20.08.2/src/freebusymanager.cpp:964: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 (!f.open(QIODevice::ReadOnly)) {
data/akonadi-calendar-20.08.2/src/freebusymanager.cpp:1006: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 (!f.open(QIODevice::ReadWrite)) {

ANALYSIS SUMMARY:

Hits = 4
Lines analyzed = 19466 in approximately 0.48 seconds (40288 lines/second)
Physical Source Lines of Code (SLOC) = 13717
Hits@level = [0]   0 [1]   0 [2]   4 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]   4 [1+]   4 [2+]   4 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.291609 [1+] 0.291609 [2+] 0.291609 [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.