[gnome-bluetooth/wip/hadess/sendto-fixes: 2/3] sendto: Fix out of bounds access




commit 53fbc6f065e928db9a446e04de2c716027aac20d
Author: Jan Tojnar <jtojnar gmail com>
Date:   Tue Feb 22 11:19:25 2022 +0100

    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.

 sendto/main.c | 7 ++++---
 1 file 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);
                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]