Commit 9165a61f authored by Alexander Schwinn's avatar Alexander Schwinn
Browse files

Dont execute files, passed via command line due to security risks

Instead open the containing folder and select the file.

Fixes #121
parent 1102df73
Pipeline #8794 passed with stages
in 6 minutes and 2 seconds
......@@ -1512,8 +1512,29 @@ thunar_application_process_files_finish (ThunarBrowser *browser,
}
else
{
/* try to open the file or directory */
thunar_file_launch (target_file, screen, startup_id, &error);
if (thunar_file_is_directory (file))
{
thunar_application_open_window (application, file, screen, startup_id, FALSE);
}
else
{
/* Note that for security reasons we do not execute files passed via command line */
/* Lets rather open the containing directory and select the file */
ThunarFile *parent = thunar_file_get_parent (file, NULL);
if (G_LIKELY (parent != NULL))
{
GList* files = NULL;
GtkWidget *window;
window = thunar_application_open_window (application, parent, screen, startup_id, FALSE);
g_object_unref (parent);
files = g_list_append (files, thunar_file_get_file (file));
thunar_window_select_files (THUNAR_WINDOW (window), files);
g_list_free (files);
}
}
/* remove the file from the list */
application->files_to_launch = g_list_delete_link (application->files_to_launch,
......
......@@ -261,8 +261,6 @@ static void thunar_window_update_go_menu (ThunarWindow
GtkWidget *menu);
static void thunar_window_update_help_menu (ThunarWindow *window,
GtkWidget *menu);
static void thunar_window_select_files (ThunarWindow *window,
GList *path_list);
static void thunar_window_binding_create (ThunarWindow *window,
gpointer src_object,
const gchar *src_prop,
......@@ -944,7 +942,7 @@ thunar_window_screen_changed (GtkWidget *widget,
*
* Visually selects the files, given by the list
**/
static void
void
thunar_window_select_files (ThunarWindow *window,
GList *files_to_selected)
{
......
......@@ -130,6 +130,8 @@ void thunar_window_redirect_menu_tooltips_to_statusbar (Thu
GtkMenu *menu);
const XfceGtkActionEntry* thunar_window_get_action_entry (ThunarWindow *window,
ThunarWindowAction action);
void thunar_window_select_files (ThunarWindow *window,
GList *path_list);
G_END_DECLS;
#endif /* !__THUNAR_WINDOW_H__ */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment