diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2022-02-22 11:19:25 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-02-23 16:21:49 +0100 |
commit | 965ba6add9825000b50b09b6cac08b55a3a1e192 (patch) | |
tree | f1d0b954407e0ed092c9d5d6de085dc46726b73b | |
parent | 52e0d04e7127ea57ebd95ae17d06fed70ca91f08 (diff) | |
download | gnome-bluetooth-965ba6add9825000b50b09b6cac08b55a3a1e192.tar.gz |
sendto: Fix out of bounds access
When running `bluetooth-sendto` without arguments and selecting some files,
the app would try to access memory after the model list returned by gtk_file_chooser_get_files.
-rw-r--r-- | sendto/main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sendto/main.c b/sendto/main.c index 42f2c749..2f36f592 100644 --- a/sendto/main.c +++ b/sendto/main.c @@ -706,13 +706,14 @@ show_select_dialog(void) if (select_dialog_response == GTK_RESPONSE_ACCEPT) { g_autoptr(GListModel) selected_files = NULL; - int i; + guint i, n_items; selected_files = gtk_file_chooser_get_files(GTK_FILE_CHOOSER(dialog)); + n_items = g_list_model_get_n_items(selected_files); - files = g_new(gchar *, g_list_model_get_n_items(selected_files) + 1); + files = g_new(gchar *, n_items + 1); - for (i = 0; g_list_model_get_n_items(selected_files); i++) { + for (i = 0; i < n_items; i++) { g_autoptr(GFile) file = g_list_model_get_item(selected_files, i); files[i] = g_file_get_path(file); } |