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/giggle-0.7/libgiggle/giggle-remote-ref.c Examining data/giggle-0.7/libgiggle/giggle-tag.c Examining data/giggle-0.7/libgiggle/giggle-branch.c Examining data/giggle-0.7/libgiggle/giggle-revision.h Examining data/giggle-0.7/libgiggle/giggle-job.c Examining data/giggle-0.7/libgiggle/giggle-view-shell.h Examining data/giggle-0.7/libgiggle/giggle-remote-branch.h Examining data/giggle-0.7/libgiggle/giggle-ref.h Examining data/giggle-0.7/libgiggle/giggle-sysdeps.h Examining data/giggle-0.7/libgiggle/giggle-remote.h Examining data/giggle-0.7/libgiggle/giggle-error.h Examining data/giggle-0.7/libgiggle/giggle-tag.h Examining data/giggle-0.7/libgiggle/giggle-enums.c Examining data/giggle-0.7/libgiggle/giggle-enums.h Examining data/giggle-0.7/libgiggle/giggle-searchable.c Examining data/giggle-0.7/libgiggle/giggle-dispatcher.h Examining data/giggle-0.7/libgiggle/giggle-author.c Examining data/giggle-0.7/libgiggle/giggle-remote-branch.c Examining data/giggle-0.7/libgiggle/giggle-remote-ref.h Examining data/giggle-0.7/libgiggle/giggle-dispatcher.c Examining data/giggle-0.7/libgiggle/giggle-clipboard.h Examining data/giggle-0.7/libgiggle/giggle-remote.c Examining data/giggle-0.7/libgiggle/giggle-revision.c Examining data/giggle-0.7/libgiggle/giggle-plugin.h Examining data/giggle-0.7/libgiggle/giggle-job.h Examining data/giggle-0.7/libgiggle/giggle-plugin.c Examining data/giggle-0.7/libgiggle/giggle-searchable.h Examining data/giggle-0.7/libgiggle/giggle-view.h Examining data/giggle-0.7/libgiggle/giggle-sysdeps.c Examining data/giggle-0.7/libgiggle/giggle-clipboard.c Examining data/giggle-0.7/libgiggle/giggle-ref.c Examining data/giggle-0.7/libgiggle/giggle-error.c Examining data/giggle-0.7/libgiggle/giggle-view-shell.c Examining data/giggle-0.7/libgiggle/giggle-history.c Examining data/giggle-0.7/libgiggle/giggle-plugin-manager.h Examining data/giggle-0.7/libgiggle/giggle-branch.h Examining data/giggle-0.7/libgiggle/giggle-plugin-manager.c Examining data/giggle-0.7/libgiggle/giggle-view.c Examining data/giggle-0.7/libgiggle/giggle-history.h Examining data/giggle-0.7/libgiggle/giggle-author.h Examining data/giggle-0.7/src/giggle-label-action.c Examining data/giggle-0.7/src/giggle-diff-window.h Examining data/giggle-0.7/src/giggle-avatar-image.c Examining data/giggle-0.7/src/giggle-spaning-renderer.h Examining data/giggle-0.7/src/giggle-input-dialog.c Examining data/giggle-0.7/src/giggle-rev-list-view.c Examining data/giggle-0.7/src/giggle-rev-list-view.h Examining data/giggle-0.7/src/giggle-branches-view.c Examining data/giggle-0.7/src/giggle-input-dialog.h Examining data/giggle-0.7/src/giggle-remote-editor.h Examining data/giggle-0.7/src/giggle-view-diff.h Examining data/giggle-0.7/src/giggle-window.c Examining data/giggle-0.7/src/giggle-diff-tree-view.c Examining data/giggle-0.7/src/eggfindbar.c Examining data/giggle-0.7/src/giggle-remotes-view.h Examining data/giggle-0.7/src/giggle-file-list.h Examining data/giggle-0.7/src/giggle-branches-view.h Examining data/giggle-0.7/src/giggle-revision-info-action.h Examining data/giggle-0.7/src/giggle-window.h Examining data/giggle-0.7/src/giggle-view-diff.c Examining data/giggle-0.7/src/giggle-revision-info-action.c Examining data/giggle-0.7/src/giggle-view-history.c Examining data/giggle-0.7/src/giggle-spaning-renderer.c Examining data/giggle-0.7/src/giggle-clone-dialog.h Examining data/giggle-0.7/src/giggle-revision-info.h Examining data/giggle-0.7/src/giggle-avatar-cache.h Examining data/giggle-0.7/src/giggle-view-file.h Examining data/giggle-0.7/src/giggle-short-list.c Examining data/giggle-0.7/src/giggle-helpers.h Examining data/giggle-0.7/src/giggle-graph-renderer.c Examining data/giggle-0.7/src/giggle-revision-view.c Examining data/giggle-0.7/src/giggle-remotes-view.c Examining data/giggle-0.7/src/giggle-clone-dialog.c Examining data/giggle-0.7/src/giggle-view-summary.c Examining data/giggle-0.7/src/giggle-label-action.h Examining data/giggle-0.7/src/giggle-view-summary.h Examining data/giggle-0.7/src/giggle-helpers.c Examining data/giggle-0.7/src/giggle-revision-info.c Examining data/giggle-0.7/src/giggle-description-editor.h Examining data/giggle-0.7/src/giggle-avatar-image.h Examining data/giggle-0.7/src/giggle-diff-window.c Examining data/giggle-0.7/src/giggle-main.c Examining data/giggle-0.7/src/giggle-diff-tree-view.h Examining data/giggle-0.7/src/giggle-graph-renderer.h Examining data/giggle-0.7/src/giggle-description-editor.c Examining data/giggle-0.7/src/giggle-file-list.c Examining data/giggle-0.7/src/giggle-authors-view.c Examining data/giggle-0.7/src/giggle-remote-editor.c Examining data/giggle-0.7/src/giggle-view-history.h Examining data/giggle-0.7/src/giggle-authors-view.h Examining data/giggle-0.7/src/eggfindbar.h Examining data/giggle-0.7/src/giggle-avatar-cache.c Examining data/giggle-0.7/src/giggle-short-list.h Examining data/giggle-0.7/src/giggle-revision-view.h Examining data/giggle-0.7/src/giggle-view-file.c Examining data/giggle-0.7/src/giggle-diff-view.c Examining data/giggle-0.7/src/giggle-diff-view.h Examining data/giggle-0.7/test/check-bare.c Examining data/giggle-0.7/plugins/giggle-view-terminal-plugin.c Examining data/giggle-0.7/plugins/giggle-personal-details-window.c Examining data/giggle-0.7/plugins/giggle-view-terminal.h Examining data/giggle-0.7/plugins/giggle-hello-world-plugin.c Examining data/giggle-0.7/plugins/giggle-personal-details-plugin.c Examining data/giggle-0.7/plugins/giggle-personal-details-window.h Examining data/giggle-0.7/plugins/giggle-view-terminal.c Examining data/giggle-0.7/libgiggle-git/giggle-git-blame.c Examining data/giggle-0.7/libgiggle-git/giggle-git.h Examining data/giggle-0.7/libgiggle-git/giggle-git-config-write.h Examining data/giggle-0.7/libgiggle-git/giggle-git-diff.c Examining data/giggle-0.7/libgiggle-git/giggle-git-refs.h Examining data/giggle-0.7/libgiggle-git/giggle-git-enums.h Examining data/giggle-0.7/libgiggle-git/giggle-git-config-read.c Examining data/giggle-0.7/libgiggle-git/giggle-git-add.h Examining data/giggle-0.7/libgiggle-git/giggle-git-ignore.h Examining data/giggle-0.7/libgiggle-git/giggle-git-log.c Examining data/giggle-0.7/libgiggle-git/giggle-git-delete-ref.c Examining data/giggle-0.7/libgiggle-git/giggle-git-list-tree.c Examining data/giggle-0.7/libgiggle-git/giggle-git-diff.h Examining data/giggle-0.7/libgiggle-git/giggle-git-remote-list.c Examining data/giggle-0.7/libgiggle-git/giggle-git-enums.c Examining data/giggle-0.7/libgiggle-git/giggle-git-diff-tree.h Examining data/giggle-0.7/libgiggle-git/giggle-git-commit.c Examining data/giggle-0.7/libgiggle-git/giggle-git-config-write.c Examining data/giggle-0.7/libgiggle-git/giggle-git-revisions.c Examining data/giggle-0.7/libgiggle-git/giggle-git-cat-file.h Examining data/giggle-0.7/libgiggle-git/giggle-git-authors.c Examining data/giggle-0.7/libgiggle-git/giggle-git-clone.h Examining data/giggle-0.7/libgiggle-git/giggle-git-diff-tree.c Examining data/giggle-0.7/libgiggle-git/giggle-git-authors.h Examining data/giggle-0.7/libgiggle-git/giggle-git-revisions.h Examining data/giggle-0.7/libgiggle-git/giggle-git-clone.c Examining data/giggle-0.7/libgiggle-git/giggle-git-add-ref.c Examining data/giggle-0.7/libgiggle-git/giggle-git-config-read.h Examining data/giggle-0.7/libgiggle-git/giggle-git-list-tree.h Examining data/giggle-0.7/libgiggle-git/giggle-git-ignore.c Examining data/giggle-0.7/libgiggle-git/giggle-git-add.c Examining data/giggle-0.7/libgiggle-git/giggle-git-blame.h Examining data/giggle-0.7/libgiggle-git/giggle-git-remote-list.h Examining data/giggle-0.7/libgiggle-git/giggle-git-config.h Examining data/giggle-0.7/libgiggle-git/giggle-git-log.h Examining data/giggle-0.7/libgiggle-git/giggle-git-cat-file.c Examining data/giggle-0.7/libgiggle-git/giggle-git-list-files.h Examining data/giggle-0.7/libgiggle-git/giggle-git-commit.h Examining data/giggle-0.7/libgiggle-git/giggle-git-refs.c Examining data/giggle-0.7/libgiggle-git/giggle-git-delete-ref.h Examining data/giggle-0.7/libgiggle-git/giggle-git-config.c Examining data/giggle-0.7/libgiggle-git/giggle-git-add-ref.h Examining data/giggle-0.7/libgiggle-git/giggle-git-list-files.c Examining data/giggle-0.7/libgiggle-git/giggle-git.c FINAL RESULTS: data/giggle-0.7/libgiggle-git/giggle-git-revisions.c:150:2: [4] (buffer) sscanf: The scanf() family's %s operation, without a limit specification, permits buffer overflows (CWE-120, CWE-20). Specify a limit to %s, or use a different input function. If the scanf format is influenceable by an attacker, it's exploitable. sscanf (date, "%" GIGGLE_FORMAT_TIME_T, &time); data/giggle-0.7/libgiggle-git/giggle-git-blame.c:170:2: [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 sha[41]; data/giggle-0.7/libgiggle-git/giggle-git-diff-tree.c:216:2: [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 sha1[41], sha2[41]; data/giggle-0.7/libgiggle-git/giggle-git-list-tree.c:30:2: [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 type[5]; data/giggle-0.7/libgiggle-git/giggle-git-list-tree.c:31:2: [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 sha[41]; data/giggle-0.7/src/giggle-avatar-cache.c:32:2: [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[8192]; data/giggle-0.7/src/giggle-revision-info.c:50:2: [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 date[256] = ""; data/giggle-0.7/src/giggle-revision-view.c:452:2: [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 str[256]; data/giggle-0.7/src/giggle-window.c:301:2: [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 geometry[25]; data/giggle-0.7/libgiggle-git/giggle-git-blame.c:187:25: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. g_warn_if_fail (4 == sscanf data/giggle-0.7/libgiggle-git/giggle-git-diff-tree.c:228:12: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. if (5 != sscanf (lines[i], ":%6d %6d %40s %40s %c\t%n", data/giggle-0.7/libgiggle-git/giggle-git-ignore.c:207:9: [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 (giggle_git_get_directory (priv->git)) data/giggle-0.7/libgiggle-git/giggle-git-list-tree.c:177:3: [1] (buffer) sscanf: It's unclear if the %s limit in the format string is small enough (CWE-120). Check that the limit is sufficiently small, or use a different input function. sscanf (start, "%6d %4s %40s\t%n", &item->mode, item->type, item->sha, &len); data/giggle-0.7/libgiggle-git/giggle-git-refs.c:138:38: [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). ref = giggle_branch_new (data[1] + strlen ("refs/heads/")); data/giggle-0.7/libgiggle-git/giggle-git-refs.c:147:35: [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). ref = giggle_tag_new (data[1] + strlen ("refs/tags/")); data/giggle-0.7/libgiggle-git/giggle-git-refs.c:151:42: [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). ref = giggle_remote_ref_new (data[1] + strlen ("refs/remotes/")); data/giggle-0.7/libgiggle-git/giggle-git-revisions.c:237: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). converted + strlen ("author "), data/giggle-0.7/libgiggle-git/giggle-git-revisions.c:241: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). converted + strlen ("committer "), data/giggle-0.7/libgiggle-git/giggle-git-revisions.c:327:9: [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). while (strlen (str) > 0) { data/giggle-0.7/libgiggle-git/giggle-git-revisions.c:332:10: [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 += strlen (str) + 1; data/giggle-0.7/libgiggle-git/giggle-git.c:452:10: [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). key += strlen ("svn-remote."); data/giggle-0.7/libgiggle/giggle-plugin.c:548:14: [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). priv->name[strlen (priv->name) - 4] = '\0'; data/giggle-0.7/libgiggle/giggle-remote.c:242:44: [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). giggle_remote_set_url (remote, *step + strlen ("URL: ")); data/giggle-0.7/libgiggle/giggle-remote.c:245:20: [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). *step + strlen ("Push: ")); data/giggle-0.7/libgiggle/giggle-remote.c:248:20: [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). *step + strlen ("Pull: ")); data/giggle-0.7/src/giggle-avatar-cache.c:329:4: [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 (gravatar_id)); data/giggle-0.7/src/giggle-clone-dialog.c:114:17: [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). end = start + strlen (start); data/giggle-0.7/src/giggle-diff-view.c:211:9: [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). len = strlen (text); data/giggle-0.7/src/giggle-diff-view.c:668:18: [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). size_t len = strlen (filename); data/giggle-0.7/src/giggle-window.c:1741:41: [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 (!g_file_set_contents (path, text, strlen (text), &error)) { ANALYSIS SUMMARY: Hits = 30 Lines analyzed = 32959 in approximately 0.66 seconds (49596 lines/second) Physical Source Lines of Code (SLOC) = 23381 Hits@level = [0] 6 [1] 21 [2] 8 [3] 0 [4] 1 [5] 0 Hits@level+ = [0+] 36 [1+] 30 [2+] 9 [3+] 1 [4+] 1 [5+] 0 Hits/KSLOC@level+ = [0+] 1.53971 [1+] 1.28309 [2+] 0.384928 [3+] 0.0427698 [4+] 0.0427698 [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.