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/gnome-calendar-3.38.1/src/core/gcal-calendar-monitor.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-calendar-monitor.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-calendar.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-calendar.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-clock.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-clock.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-context.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-context.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-event.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-event.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-log.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-log.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-manager.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-manager.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-night-light-monitor.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-night-light-monitor.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-range-tree.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-range-tree.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-range.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-range.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-recurrence.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-recurrence.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-shell-search-provider.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-shell-search-provider.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-time-zone-monitor.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-time-zone-monitor.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-timeline-subscriber.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-timeline-subscriber.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-timeline.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-timer.c
Examining data/gnome-calendar-3.38.1/src/core/gcal-timer.h
Examining data/gnome-calendar-3.38.1/src/core/gcal-timeline.c
Examining data/gnome-calendar-3.38.1/src/css-code.h
Examining data/gnome-calendar-3.38.1/src/gcal-enums.h
Examining data/gnome-calendar-3.38.1/src/gcal-types.h
Examining data/gnome-calendar-3.38.1/src/gconstructor.h
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendar-management-dialog.c
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendar-management-dialog.h
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendar-management-page.c
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendar-management-page.h
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendars-page.c
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-calendars-page.h
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-edit-calendar-page.c
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-edit-calendar-page.h
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-new-calendar-page.c
Examining data/gnome-calendar-3.38.1/src/gui/calendar-management/gcal-new-calendar-page.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-alarm-row.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-alarm-row.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-application.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-application.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-calendar-popover.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-calendar-popover.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-chooser-day.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-chooser-day.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-chooser.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-chooser.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-selector.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-date-selector.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-edit-dialog.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-edit-dialog.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-event-widget.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-event-widget.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-multi-choice.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-multi-choice.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-quick-add-popover.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-quick-add-popover.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-time-selector.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-time-selector.h
Examining data/gnome-calendar-3.38.1/src/gui/gcal-window.c
Examining data/gnome-calendar-3.38.1/src/gui/gcal-window.h
Examining data/gnome-calendar-3.38.1/src/main.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-button.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-button.h
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-engine.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-engine.h
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-hit-event.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-hit-event.h
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-hit.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-hit.h
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-model.c
Examining data/gnome-calendar-3.38.1/src/search/gcal-search-model.h
Examining data/gnome-calendar-3.38.1/src/utils/gcal-date-time-utils.c
Examining data/gnome-calendar-3.38.1/src/utils/gcal-date-time-utils.h
Examining data/gnome-calendar-3.38.1/src/utils/gcal-source-discoverer.c
Examining data/gnome-calendar-3.38.1/src/utils/gcal-source-discoverer.h
Examining data/gnome-calendar-3.38.1/src/utils/gcal-utils.c
Examining data/gnome-calendar-3.38.1/src/utils/gcal-utils.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-cell.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-cell.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-popover.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-popover.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-view.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-month-view.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-view.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-view.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-grid.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-grid.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-header.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-header.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-view.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-week-view.h
Examining data/gnome-calendar-3.38.1/src/views/gcal-year-view.c
Examining data/gnome-calendar-3.38.1/src/views/gcal-year-view.h
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-info.c
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-info.h
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.h
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-settings.c
Examining data/gnome-calendar-3.38.1/src/weather/gcal-weather-settings.h
Examining data/gnome-calendar-3.38.1/tests/gcal-simple-server.c
Examining data/gnome-calendar-3.38.1/tests/gcal-simple-server.h
Examining data/gnome-calendar-3.38.1/tests/gcal-stub-calendar.c
Examining data/gnome-calendar-3.38.1/tests/gcal-stub-calendar.h
Examining data/gnome-calendar-3.38.1/tests/test-discoverer.c
Examining data/gnome-calendar-3.38.1/tests/test-event.c
Examining data/gnome-calendar-3.38.1/tests/test-range-tree.c
Examining data/gnome-calendar-3.38.1/tests/test-range.c
Examining data/gnome-calendar-3.38.1/tests/test-server.c

FINAL RESULTS:

data/gnome-calendar-3.38.1/src/utils/gcal-utils.c:657:3:  [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 (str, buf, sz);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:191:3:  [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 (bufpos, str, normalized_size);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:196:7:  [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 (bufpos, night_pfx, night_pfx_size);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:200:3:  [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 (bufpos, sym_pfx, sym_pfx_size);
data/gnome-calendar-3.38.1/src/core/gcal-event.c:176:22:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
        real_tzid += strlen (LIBICAL_TZID_PREFIX);
data/gnome-calendar-3.38.1/src/gconstructor.h:60:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  __pragma(section(".CRT$XCU",read)) \
data/gnome-calendar-3.38.1/src/gconstructor.h:68:31:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  __pragma(section(".CRT$XCU",read)) \
data/gnome-calendar-3.38.1/src/gconstructor.h:80:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  section(".CRT$XCU",read)
data/gnome-calendar-3.38.1/src/gconstructor.h:87:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
  section(".CRT$XCU",read)
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:137:30:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
  const gssize suffix1_len = strlen (suffix1);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:140:30:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
  const gssize suffix2_len = strlen (suffix2);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:145:13:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
  str_len = strlen (str);
data/gnome-calendar-3.38.1/src/weather/gcal-weather-service.c:311:34:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
      if (normalized_name_len == strlen (icons[i].name) &&
data/gnome-calendar-3.38.1/tests/gcal-simple-server.c:62:34:  [1] (buffer) strlen:
  Does not handle strings that are not \0-terminated; if given one it may
  perform an over-read (it could cause a crash if unprotected) (CWE-126).
                                 strlen (GCAL_TEST_SERVER_EMPTY_CALENDAR));

ANALYSIS SUMMARY:

Hits = 14
Lines analyzed = 40925 in approximately 0.80 seconds (51112 lines/second)
Physical Source Lines of Code (SLOC) = 26893
Hits@level = [0]   0 [1]  10 [2]   4 [3]   0 [4]   0 [5]   0
Hits@level+ = [0+]  14 [1+]  14 [2+]   4 [3+]   0 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 0.520582 [1+] 0.520582 [2+] 0.148738 [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.