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/loqui-0.6.4/libloqui/ctcp_handle.c Examining data/loqui-0.6.4/libloqui/ctcp_handle.h Examining data/loqui-0.6.4/libloqui/ctcp_message.c Examining data/loqui-0.6.4/libloqui/ctcp_message.h Examining data/loqui-0.6.4/libloqui/ipmsg.h Examining data/loqui-0.6.4/libloqui/ipmsg_packet.c Examining data/loqui-0.6.4/libloqui/ipmsg_packet.h Examining data/loqui-0.6.4/libloqui/irc_constants.h Examining data/loqui-0.6.4/libloqui/irc_message.c Examining data/loqui-0.6.4/libloqui/irc_message.h Examining data/loqui-0.6.4/libloqui/libloqui-intl.h Examining data/loqui-0.6.4/libloqui/loqui-account-ipmsg-private.h Examining data/loqui-0.6.4/libloqui/loqui-account-ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui-account-ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui-account-manager-private.h Examining data/loqui-0.6.4/libloqui/loqui-account-manager.c Examining data/loqui-0.6.4/libloqui/loqui-account-manager.h Examining data/loqui-0.6.4/libloqui/loqui-core-private.h Examining data/loqui-0.6.4/libloqui/loqui-core.c Examining data/loqui-0.6.4/libloqui/loqui-core.h Examining data/loqui-0.6.4/libloqui/loqui-general-pref-default.h Examining data/loqui-0.6.4/libloqui/loqui-general-pref-groups.h Examining data/loqui-0.6.4/libloqui/loqui-generic-profile-factory-private.h Examining data/loqui-0.6.4/libloqui/loqui-generic-profile-factory.c Examining data/loqui-0.6.4/libloqui/loqui-generic-profile-factory.h Examining data/loqui-0.6.4/libloqui/loqui-gobject-utils.c Examining data/loqui-0.6.4/libloqui/loqui-gobject-utils.h Examining data/loqui-0.6.4/libloqui/loqui-message-text-private.h Examining data/loqui-0.6.4/libloqui/loqui-message-text-region-private.h Examining data/loqui-0.6.4/libloqui/loqui-message-text-region.c Examining data/loqui-0.6.4/libloqui/loqui-message-text-region.h Examining data/loqui-0.6.4/libloqui/loqui-message-text.c Examining data/loqui-0.6.4/libloqui/loqui-message-text.h Examining data/loqui-0.6.4/libloqui/loqui-mode-item-private.h Examining data/loqui-0.6.4/libloqui/loqui-mode-item.c Examining data/loqui-0.6.4/libloqui/loqui-mode-item.h Examining data/loqui-0.6.4/libloqui/loqui-mode-manager-private.h Examining data/loqui-0.6.4/libloqui/loqui-mode-manager.c Examining data/loqui-0.6.4/libloqui/loqui-mode-manager.h Examining data/loqui-0.6.4/libloqui/loqui-notifier-private.h Examining data/loqui-0.6.4/libloqui/loqui-notifier.c Examining data/loqui-0.6.4/libloqui/loqui-notifier.h Examining data/loqui-0.6.4/libloqui/loqui-pref-partial-private.h Examining data/loqui-0.6.4/libloqui/loqui-pref-partial.c Examining data/loqui-0.6.4/libloqui/loqui-pref-partial.h Examining data/loqui-0.6.4/libloqui/loqui-pref-private.h Examining data/loqui-0.6.4/libloqui/loqui-pref-sequence-private.h Examining data/loqui-0.6.4/libloqui/loqui-pref-sequence.c Examining data/loqui-0.6.4/libloqui/loqui-pref-sequence.h Examining data/loqui-0.6.4/libloqui/loqui-pref.c Examining data/loqui-0.6.4/libloqui/loqui-pref.h Examining data/loqui-0.6.4/libloqui/loqui-profile-factory.c Examining data/loqui-0.6.4/libloqui/loqui-profile-factory.h Examining data/loqui-0.6.4/libloqui/loqui-profile-handle-private.h Examining data/loqui-0.6.4/libloqui/loqui-profile-handle.c Examining data/loqui-0.6.4/libloqui/loqui-profile-handle.h Examining data/loqui-0.6.4/libloqui/loqui-profile.c Examining data/loqui-0.6.4/libloqui/loqui-profile.h Examining data/loqui-0.6.4/libloqui/loqui-property-profile-private.h Examining data/loqui-0.6.4/libloqui/loqui-property-profile.c Examining data/loqui-0.6.4/libloqui/loqui-property-profile.h Examining data/loqui-0.6.4/libloqui/loqui-protocol-private.h Examining data/loqui-0.6.4/libloqui/loqui-protocol.c Examining data/loqui-0.6.4/libloqui/loqui-protocol.h Examining data/loqui-0.6.4/libloqui/loqui-receiver-ipmsg-private.h Examining data/loqui-0.6.4/libloqui/loqui-receiver-ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui-receiver-ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui-sender-ipmsg-private.h Examining data/loqui-0.6.4/libloqui/loqui-sender-ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui-sender-ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui-socket-ipmsg-private.h Examining data/loqui-0.6.4/libloqui/loqui-socket-ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui-socket-ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui-static-core.c Examining data/loqui-0.6.4/libloqui/loqui-static-core.h Examining data/loqui-0.6.4/libloqui/loqui-transfer-item-private.h Examining data/loqui-0.6.4/libloqui/loqui-transfer-item.c Examining data/loqui-0.6.4/libloqui/loqui-transfer-item.h Examining data/loqui-0.6.4/libloqui/loqui-utils-ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui-utils-ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui-utils.c Examining data/loqui-0.6.4/libloqui/loqui-utils.h Examining data/loqui-0.6.4/libloqui/loqui.h Examining data/loqui-0.6.4/libloqui/loqui_account.c Examining data/loqui-0.6.4/libloqui/loqui_account.h Examining data/loqui-0.6.4/libloqui/loqui_account_irc.c Examining data/loqui-0.6.4/libloqui/loqui_account_irc.h Examining data/loqui-0.6.4/libloqui/loqui_account_manager_iter.c Examining data/loqui-0.6.4/libloqui/loqui_account_manager_iter.h Examining data/loqui-0.6.4/libloqui/loqui_channel.c Examining data/loqui-0.6.4/libloqui/loqui_channel.h Examining data/loqui-0.6.4/libloqui/loqui_channel_buffer.c Examining data/loqui-0.6.4/libloqui/loqui_channel_buffer.h Examining data/loqui-0.6.4/libloqui/loqui_channel_entry.c Examining data/loqui-0.6.4/libloqui/loqui_channel_entry.h Examining data/loqui-0.6.4/libloqui/loqui_channel_entry_utils.c Examining data/loqui-0.6.4/libloqui/loqui_channel_entry_utils.h Examining data/loqui-0.6.4/libloqui/loqui_channel_irc.c Examining data/loqui-0.6.4/libloqui/loqui_channel_irc.h Examining data/loqui-0.6.4/libloqui/loqui_codeconv.c Examining data/loqui-0.6.4/libloqui/loqui_codeconv.h Examining data/loqui-0.6.4/libloqui/loqui_codeconv_tools.c Examining data/loqui-0.6.4/libloqui/loqui_codeconv_tools.h Examining data/loqui-0.6.4/libloqui/loqui_marshalers.c Examining data/loqui-0.6.4/libloqui/loqui_marshalers.h Examining data/loqui-0.6.4/libloqui/loqui_member.c Examining data/loqui-0.6.4/libloqui/loqui_member.h Examining data/loqui-0.6.4/libloqui/loqui_member_sort_funcs.c Examining data/loqui-0.6.4/libloqui/loqui_member_sort_funcs.h Examining data/loqui-0.6.4/libloqui/loqui_message.c Examining data/loqui-0.6.4/libloqui/loqui_message.h Examining data/loqui-0.6.4/libloqui/loqui_profile_account.c Examining data/loqui-0.6.4/libloqui/loqui_profile_account.h Examining data/loqui-0.6.4/libloqui/loqui_profile_account_ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui_profile_account_ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui_profile_account_irc.c Examining data/loqui-0.6.4/libloqui/loqui_profile_account_irc.h Examining data/loqui-0.6.4/libloqui/loqui_protocol_ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui_protocol_ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui_protocol_irc.c Examining data/loqui-0.6.4/libloqui/loqui_protocol_irc.h Examining data/loqui-0.6.4/libloqui/loqui_protocol_manager.c Examining data/loqui-0.6.4/libloqui/loqui_protocol_manager.h Examining data/loqui-0.6.4/libloqui/loqui_receiver.c Examining data/loqui-0.6.4/libloqui/loqui_receiver.h Examining data/loqui-0.6.4/libloqui/loqui_receiver_irc.c Examining data/loqui-0.6.4/libloqui/loqui_receiver_irc.h Examining data/loqui-0.6.4/libloqui/loqui_sender.c Examining data/loqui-0.6.4/libloqui/loqui_sender.h Examining data/loqui-0.6.4/libloqui/loqui_sender_irc.c Examining data/loqui-0.6.4/libloqui/loqui_sender_irc.h Examining data/loqui-0.6.4/libloqui/loqui_string_tokenizer.c Examining data/loqui-0.6.4/libloqui/loqui_string_tokenizer.h Examining data/loqui-0.6.4/libloqui/loqui_title_format.c Examining data/loqui-0.6.4/libloqui/loqui_title_format.h Examining data/loqui-0.6.4/libloqui/loqui_user.c Examining data/loqui-0.6.4/libloqui/loqui_user.h Examining data/loqui-0.6.4/libloqui/loqui_user_ipmsg.c Examining data/loqui-0.6.4/libloqui/loqui_user_ipmsg.h Examining data/loqui-0.6.4/libloqui/loqui_user_irc.c Examining data/loqui-0.6.4/libloqui/loqui_user_irc.h Examining data/loqui-0.6.4/libloqui/loqui_utils_irc.c Examining data/loqui-0.6.4/libloqui/loqui_utils_irc.h Examining data/loqui-0.6.4/libloqui/loqui_webutils.c Examining data/loqui-0.6.4/libloqui/loqui_webutils.h Examining data/loqui-0.6.4/libloqui/protocols/jabber/loqui-account-jabber-private.h Examining data/loqui-0.6.4/libloqui/protocols/jabber/loqui-account-jabber.c Examining data/loqui-0.6.4/libloqui/protocols/jabber/loqui-account-jabber.h Examining data/loqui-0.6.4/src/about.c Examining data/loqui-0.6.4/src/about.h Examining data/loqui-0.6.4/src/account_list_dialog.c Examining data/loqui-0.6.4/src/account_list_dialog.h Examining data/loqui-0.6.4/src/channel_tree.c Examining data/loqui-0.6.4/src/channel_tree.h Examining data/loqui-0.6.4/src/command_dialog.c Examining data/loqui-0.6.4/src/command_dialog.h Examining data/loqui-0.6.4/src/embedtxt/loqui_app_ui.h Examining data/loqui-0.6.4/src/embedtxt/loqui_transfer_window_ui.h Examining data/loqui-0.6.4/src/gtkutils.c Examining data/loqui-0.6.4/src/gtkutils.h Examining data/loqui-0.6.4/src/icons/away.h Examining data/loqui-0.6.4/src/icons/busy.h Examining data/loqui-0.6.4/src/icons/command.h Examining data/loqui-0.6.4/src/icons/console.h Examining data/loqui-0.6.4/src/icons/loqui.h Examining data/loqui-0.6.4/src/icons/loqui_hilighted.h Examining data/loqui-0.6.4/src/icons/naruto.h Examining data/loqui-0.6.4/src/icons/notice.h Examining data/loqui-0.6.4/src/icons/offline.h Examining data/loqui-0.6.4/src/icons/online.h Examining data/loqui-0.6.4/src/icons/pixbufs.h Examining data/loqui-0.6.4/src/icons/speaker.h Examining data/loqui-0.6.4/src/icons/whether_scroll.h Examining data/loqui-0.6.4/src/loqui-account-dialog-private.h Examining data/loqui-0.6.4/src/loqui-account-dialog.c Examining data/loqui-0.6.4/src/loqui-account-dialog.h Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group-private.h Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group-ui-private.h Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group-ui.c Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group-ui.h Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group.c Examining data/loqui-0.6.4/src/loqui-channel-entry-action-group.h Examining data/loqui-0.6.4/src/loqui-channel-entry-ui-data-private.h Examining data/loqui-0.6.4/src/loqui-channel-entry-ui-data.c Examining data/loqui-0.6.4/src/loqui-channel-entry-ui-data.h Examining data/loqui-0.6.4/src/loqui-core-gtk-private.h Examining data/loqui-0.6.4/src/loqui-core-gtk.c Examining data/loqui-0.6.4/src/loqui-core-gtk.h Examining data/loqui-0.6.4/src/loqui-general-pref-gtk-default.h Examining data/loqui-0.6.4/src/loqui-general-pref-gtk-groups.h Examining data/loqui-0.6.4/src/loqui-general-pref-gtk.h Examining data/loqui-0.6.4/src/loqui-notifier-gtk-private.h Examining data/loqui-0.6.4/src/loqui-notifier-gtk.c Examining data/loqui-0.6.4/src/loqui-notifier-gtk.h Examining data/loqui-0.6.4/src/loqui-protocol-selection-dialog-private.h Examining data/loqui-0.6.4/src/loqui-protocol-selection-dialog.c Examining data/loqui-0.6.4/src/loqui-protocol-selection-dialog.h Examining data/loqui-0.6.4/src/loqui-style-entry-private.h Examining data/loqui-0.6.4/src/loqui-style-entry.c Examining data/loqui-0.6.4/src/loqui-style-entry.h Examining data/loqui-0.6.4/src/loqui-transfer-window-private.h Examining data/loqui-0.6.4/src/loqui-transfer-window.c Examining data/loqui-0.6.4/src/loqui-transfer-window.h Examining data/loqui-0.6.4/src/loqui-tray-icon-private.h Examining data/loqui-0.6.4/src/loqui-tray-icon.c Examining data/loqui-0.6.4/src/loqui-tray-icon.h Examining data/loqui-0.6.4/src/loqui_account_manager_store.c Examining data/loqui-0.6.4/src/loqui_account_manager_store.h Examining data/loqui-0.6.4/src/loqui_app.c Examining data/loqui-0.6.4/src/loqui_app.h Examining data/loqui-0.6.4/src/loqui_app_actions.c Examining data/loqui-0.6.4/src/loqui_app_actions.h Examining data/loqui-0.6.4/src/loqui_app_info.c Examining data/loqui-0.6.4/src/loqui_app_info.h Examining data/loqui-0.6.4/src/loqui_channel_buffer_gtk.c Examining data/loqui-0.6.4/src/loqui_channel_buffer_gtk.h Examining data/loqui-0.6.4/src/loqui_channel_entry_action.c Examining data/loqui-0.6.4/src/loqui_channel_entry_action.h Examining data/loqui-0.6.4/src/loqui_channel_entry_store.c Examining data/loqui-0.6.4/src/loqui_channel_entry_store.h Examining data/loqui-0.6.4/src/loqui_channel_text_view.c Examining data/loqui-0.6.4/src/loqui_channel_text_view.h Examining data/loqui-0.6.4/src/loqui_channelbar.c Examining data/loqui-0.6.4/src/loqui_channelbar.h Examining data/loqui-0.6.4/src/loqui_dropdown_box.c Examining data/loqui-0.6.4/src/loqui_dropdown_box.h Examining data/loqui-0.6.4/src/loqui_select_dialog.c Examining data/loqui-0.6.4/src/loqui_select_dialog.h Examining data/loqui-0.6.4/src/loqui_statusbar.c Examining data/loqui-0.6.4/src/loqui_statusbar.h Examining data/loqui-0.6.4/src/loqui_stock.c Examining data/loqui-0.6.4/src/loqui_stock.h Examining data/loqui-0.6.4/src/main.c Examining data/loqui-0.6.4/src/main.h Examining data/loqui-0.6.4/src/nick_list.c Examining data/loqui-0.6.4/src/nick_list.h Examining data/loqui-0.6.4/src/prefs_dialog.c Examining data/loqui-0.6.4/src/prefs_dialog.h Examining data/loqui-0.6.4/src/prefs_general_upgrader.c Examining data/loqui-0.6.4/src/prefs_general_upgrader.h Examining data/loqui-0.6.4/src/remark_entry.c Examining data/loqui-0.6.4/src/remark_entry.h FINAL RESULTS: data/loqui-0.6.4/libloqui/loqui-utils.c:456:6: [5] (race) chmod: This accepts filename arguments; if an attacker can move those files, a race condition results. (CWE-362). Use fchmod( ) instead. if (chmod(path, S_IRWXU) < 0) { data/loqui-0.6.4/libloqui/loqui-core.c:457:39: [3] (buffer) g_get_home_dir: This function is synonymous with 'getenv("HOME")';it returns untrustable input if the environment can beset by an attacker. It can have any content and length, and the same variable can be set more than once (CWE-807, CWE-20). Check environment variables carefully before using them. self->user_dir = g_build_filename(g_get_home_dir(), LOQUI_USER_DIR_DEFAULT_BASENAME, NULL); data/loqui-0.6.4/src/loqui_account_manager_store.c:219:17: [3] (random) g_random_int: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. store->stamp = g_random_int(); data/loqui-0.6.4/src/loqui_channel_entry_store.c:211:17: [3] (random) g_random_int: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. store->stamp = g_random_int(); data/loqui-0.6.4/libloqui/loqui-utils.c:321: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(*got_uri, start_uri_ptr, cur - start_uri_ptr + 1); data/loqui-0.6.4/libloqui/loqui_codeconv_tools.c:105:18: [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(utf8char, cur, srclen); data/loqui-0.6.4/libloqui/ctcp_handle.c:374:54: [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 (d == 0 || d > G_MAXINT || endptr != (port_str + strlen(port_str))) { data/loqui-0.6.4/libloqui/ctcp_handle.c:381:55: [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 (d == 0 || d > G_MAXUINT || endptr != (size_str + strlen(size_str))) { data/loqui-0.6.4/libloqui/ctcp_handle.c:389:54: [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 (d == 0 || d > G_MAXUINT || endptr != (address + strlen(address))) { data/loqui-0.6.4/libloqui/ipmsg_packet.c:199: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). real_len = strlen(str); data/loqui-0.6.4/libloqui/irc_message.c:420:7: [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 (strlen(msg->parameter[i]) > 0 && strchr(msg->parameter[i], ' ') == NULL) { data/loqui-0.6.4/libloqui/irc_message.c:484: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). string = g_string_new_len(NULL, strlen(format)); data/loqui-0.6.4/libloqui/loqui-notifier.c:384:16: [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). string_len = strlen(text); data/loqui-0.6.4/libloqui/loqui-notifier.c:433:60: [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). self_search_highlight_word_regexp(self, msgtext, raw + strlen(HIGHLIGHT_WORD_RE_PREIX)); data/loqui-0.6.4/libloqui/loqui-notifier.c:438: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). word = raw + strlen(HIGHLIGHT_WORD_PLAIN_PREFIX); data/loqui-0.6.4/libloqui/loqui-notifier.c:443: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). len = strlen(word); data/loqui-0.6.4/libloqui/loqui-pref-sequence.c:459:24: [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). id_str = array[i] + strlen(self->prefix); data/loqui-0.6.4/libloqui/loqui-socket-ipmsg.c:253: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). len2zero = strlen(buf); data/loqui-0.6.4/libloqui/loqui-utils.c:75:24: [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). for (s = str + strlen(str) - 1; data/loqui-0.6.4/libloqui/loqui-utils.c:92:6: [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(strlen(str_array[i]) == 0) data/loqui-0.6.4/libloqui/loqui-utils.c:148: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). string = g_string_new_len(NULL, strlen(format)); data/loqui-0.6.4/libloqui/loqui-utils.c:298: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). cur += strlen(used_prefix); data/loqui-0.6.4/libloqui/loqui-utils.c:354:15: [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). format_len = strlen(format); data/loqui-0.6.4/libloqui/loqui-utils.c:552: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). string = g_string_sized_new(strlen(str)); data/loqui-0.6.4/libloqui/loqui-utils.c:573: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). string = g_string_sized_new(strlen(str)); data/loqui-0.6.4/libloqui/loqui_account_irc.c:367: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). if (password && strlen(password) > 0) { data/loqui-0.6.4/libloqui/loqui_account_irc.c:555:54: [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). g_output_stream_write_async(priv->out_stream, line, strlen(line), data/loqui-0.6.4/libloqui/loqui_codeconv.c:268:28: [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 (codeconv->codeset && strlen(codeconv->codeset) > 0) { data/loqui-0.6.4/libloqui/loqui_codeconv.c:381:40: [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). output = g_convert_with_iconv(input, strlen(input)+1, codeconv->cd_to_server, data/loqui-0.6.4/libloqui/loqui_codeconv.c:410: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). original_len = strlen(input); data/loqui-0.6.4/libloqui/loqui_codeconv_tools.c:205: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). string = g_string_new_len(NULL, strlen(input)); data/loqui-0.6.4/libloqui/loqui_codeconv_tools.c:360:8: [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(str); data/loqui-0.6.4/libloqui/loqui_codeconv_tools.c:388:8: [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(str); data/loqui-0.6.4/libloqui/loqui_receiver_irc.c:868: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). if (autojoin && strlen(autojoin) > 0) { data/loqui-0.6.4/libloqui/loqui_receiver_irc.c:1224:62: [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). loqui_channel_entry_set_topic(LOQUI_CHANNEL_ENTRY(channel), strlen(topic) ? topic : NULL); data/loqui-0.6.4/libloqui/loqui_receiver_irc.c:1248:62: [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). loqui_channel_entry_set_topic(LOQUI_CHANNEL_ENTRY(channel), strlen(topic) ? topic : NULL); data/loqui-0.6.4/libloqui/loqui_sender_irc.c:95: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). if(str == NULL || strlen(str) == 0) { data/loqui-0.6.4/libloqui/loqui_sender_irc.c:268:6: [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(strlen(array[i]) == 0) data/loqui-0.6.4/libloqui/loqui_sender_irc.c:474:21: [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 (key == NULL || strlen(key) == 0) data/loqui-0.6.4/libloqui/loqui_sender_irc.c:666:26: [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 (username == NULL || strlen(username) == 0) { data/loqui-0.6.4/libloqui/loqui_sender_irc.c:674:26: [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 (realname == NULL || strlen(realname) == 0) { data/loqui-0.6.4/libloqui/loqui_sender_irc.c:697:26: [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 (password == NULL || strlen(password) == 0) { data/loqui-0.6.4/libloqui/loqui_string_tokenizer.c:151: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). st->cur_peeked = st->cur + strlen(st->cur); data/loqui-0.6.4/libloqui/loqui_title_format.c:170:6: [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 (strlen(tmp) == 0) data/loqui-0.6.4/libloqui/loqui_title_format.c:792:24: [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 (padstr == NULL || strlen(padstr) == 0) data/loqui-0.6.4/src/loqui-notifier-gtk.c:194:31: [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 (notification_command && strlen(notification_command) > 0) { data/loqui-0.6.4/src/loqui_app_info.c:660:6: [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 (strlen(_pref) > 0) { \ data/loqui-0.6.4/src/prefs_dialog.c:379:6: [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 (strlen(buf) > 0) { \ data/loqui-0.6.4/src/remark_entry.c:584:27: [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 (strncmp(word, text, strlen(word)) == 0) { data/loqui-0.6.4/src/remark_entry.c:640: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). if (len < strlen(prefix)) { data/loqui-0.6.4/src/remark_entry.c:687:21: [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). p = text_before + strlen(text_before) - strlen(word); data/loqui-0.6.4/src/remark_entry.c:687:43: [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). p = text_before + strlen(text_before) - strlen(word); data/loqui-0.6.4/src/remark_entry.c:772:6: [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 (strlen(remark_entry_get_text(remark_entry)) == 0) data/loqui-0.6.4/src/remark_entry.c:803:11: [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). cur += strlen(command_prefix); ANALYSIS SUMMARY: Hits = 54 Lines analyzed = 59782 in approximately 2.27 seconds (26331 lines/second) Physical Source Lines of Code (SLOC) = 45459 Hits@level = [0] 0 [1] 48 [2] 2 [3] 3 [4] 0 [5] 1 Hits@level+ = [0+] 54 [1+] 54 [2+] 6 [3+] 4 [4+] 1 [5+] 1 Hits/KSLOC@level+ = [0+] 1.18788 [1+] 1.18788 [2+] 0.131987 [3+] 0.0879914 [4+] 0.0219978 [5+] 0.0219978 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.