From c5086c67a3e6c18e539f1d4dd6f1da187c080fe9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 17:21:33 +0200 Subject: Adding debian version 3.38.3-1. Signed-off-by: Daniel Baumann --- ...r-environment-variables-in-the-server-too.patch | 185 +++++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 debian/patches/server-Filter-environment-variables-in-the-server-too.patch (limited to 'debian/patches/server-Filter-environment-variables-in-the-server-too.patch') diff --git a/debian/patches/server-Filter-environment-variables-in-the-server-too.patch b/debian/patches/server-Filter-environment-variables-in-the-server-too.patch new file mode 100644 index 0000000..8e61b61 --- /dev/null +++ b/debian/patches/server-Filter-environment-variables-in-the-server-too.patch @@ -0,0 +1,185 @@ +From: Christian Persch +Date: Fri, 25 Dec 2020 18:01:12 +0100 +Subject: server: Filter environment variables in the server too + +Origin: upstream, 3.39.0, commit:8979ac4cbfbaa11237ddaf5132393f6a99d0c6ea +--- + src/Makefile.am | 2 ++ + src/terminal-client-utils.c | 88 ++++++++++++++++++++++++++++++--------------- + src/terminal-client-utils.h | 6 +++- + src/terminal-screen.c | 19 +++------- + 4 files changed, 72 insertions(+), 43 deletions(-) + +diff --git a/src/Makefile.am b/src/Makefile.am +index 2ea3d93..4583cfc 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -45,6 +45,8 @@ gnome_terminal_server_SOURCES = \ + terminal-accels.h \ + terminal-app.c \ + terminal-app.h \ ++ terminal-client-utils.c \ ++ terminal-client-utils.h \ + terminal-debug.c \ + terminal-debug.h \ + terminal-defines.h \ +diff --git a/src/terminal-client-utils.c b/src/terminal-client-utils.c +index e929281..55f56ab 100644 +--- a/src/terminal-client-utils.c ++++ b/src/terminal-client-utils.c +@@ -99,6 +99,65 @@ terminal_client_append_create_instance_options (GVariantBuilder *builder, + "fullscreen-window", g_variant_new_boolean (TRUE)); + } + ++char const* const* ++terminal_client_get_environment_filters (void) ++{ ++ static char const* filters[] = { ++ "COLORTERM", ++ "COLUMNS", ++ "DESKTOP_STARTUP_ID", ++ "EXIT_CODE", ++ "EXIT_STATUS", ++ "GIO_LAUNCHED_DESKTOP_FILE", ++ "GIO_LAUNCHED_DESKTOP_FILE_PID", ++ "GNOME_DESKTOP_ICON", ++ "INVOCATION_ID", ++ "JOURNAL_STREAM", ++ "LINES", ++ "LISTEN_FDNAMES", ++ "LISTEN_FDS", ++ "LISTEN_PID", ++ "MAINPID", ++ "MANAGERPID", ++ "NOTIFY_SOCKET", ++ "NOTIFY_SOCKET", ++ "PIDFILE", ++ "PWD", ++ "REMOTE_ADDR", ++ "REMOTE_PORT", ++ "SERVICE_RESULT", ++ "TERM", ++ "VTE_VERSION", ++ "WATCHDOG_PID", ++ "WATCHDOG_USEC", ++ "WINDOWID", ++ NULL ++ }; ++ ++ return filters; ++} ++ ++/** ++ * terminal_client_filter_environment: ++ * @envv: (transfer full): the environment ++ * ++ * Filters unwanted variables from @envv, and returns it. ++ * ++ * Returns: (transfer full): the filtered environment ++ */ ++char** ++terminal_client_filter_environment (char** envv) ++{ ++ if (envv == NULL) ++ return NULL; ++ ++ char const* const* filters = terminal_client_get_environment_filters (); ++ for (unsigned i = 0; filters[i]; ++i) ++ envv = g_environ_unsetenv (envv, filters[i]); ++ ++ return envv; ++} ++ + /** + * terminal_client_append_exec_options: + * @builder: a #GVariantBuilder of #GVariantType "a{sv}" +@@ -122,34 +181,7 @@ terminal_client_append_exec_options (GVariantBuilder *builder, + gs_strfreev char **envv; + + envv = g_get_environ (); +- envv = g_environ_unsetenv (envv, "COLORTERM"); +- envv = g_environ_unsetenv (envv, "COLUMNS"); +- envv = g_environ_unsetenv (envv, "DESKTOP_STARTUP_ID"); +- envv = g_environ_unsetenv (envv, "EXIT_CODE"); +- envv = g_environ_unsetenv (envv, "EXIT_STATUS"); +- envv = g_environ_unsetenv (envv, "GIO_LAUNCHED_DESKTOP_FILE"); +- envv = g_environ_unsetenv (envv, "GIO_LAUNCHED_DESKTOP_FILE_PID"); +- envv = g_environ_unsetenv (envv, "GNOME_DESKTOP_ICON"); +- envv = g_environ_unsetenv (envv, "INVOCATION_ID"); +- envv = g_environ_unsetenv (envv, "JOURNAL_STREAM"); +- envv = g_environ_unsetenv (envv, "LINES"); +- envv = g_environ_unsetenv (envv, "LISTEN_FDNAMES"); +- envv = g_environ_unsetenv (envv, "LISTEN_FDS"); +- envv = g_environ_unsetenv (envv, "LISTEN_PID"); +- envv = g_environ_unsetenv (envv, "MAINPID"); +- envv = g_environ_unsetenv (envv, "MANAGERPID"); +- envv = g_environ_unsetenv (envv, "NOTIFY_SOCKET"); +- envv = g_environ_unsetenv (envv, "NOTIFY_SOCKET"); +- envv = g_environ_unsetenv (envv, "PIDFILE"); +- envv = g_environ_unsetenv (envv, "PWD"); +- envv = g_environ_unsetenv (envv, "REMOTE_ADDR"); +- envv = g_environ_unsetenv (envv, "REMOTE_PORT"); +- envv = g_environ_unsetenv (envv, "SERVICE_RESULT"); +- envv = g_environ_unsetenv (envv, "TERM"); +- envv = g_environ_unsetenv (envv, "VTE_VERSION"); +- envv = g_environ_unsetenv (envv, "WATCHDOG_PID"); +- envv = g_environ_unsetenv (envv, "WATCHDOG_USEC"); +- envv = g_environ_unsetenv (envv, "WINDOWID"); ++ envv = terminal_client_filter_environment (envv); + + envv = g_environ_unsetenv (envv, TERMINAL_ENV_SERVICE_NAME); + envv = g_environ_unsetenv (envv, TERMINAL_ENV_SCREEN); +diff --git a/src/terminal-client-utils.h b/src/terminal-client-utils.h +index 0a70637..19a0a2b 100644 +--- a/src/terminal-client-utils.h ++++ b/src/terminal-client-utils.h +@@ -47,7 +47,11 @@ void terminal_client_append_exec_options (GVariantBuilder *builder, + gsize fd_array_len, + gboolean shell); + +-char * terminal_client_get_fallback_startup_id (void); ++char * terminal_client_get_fallback_startup_id (void) G_GNUC_MALLOC; ++ ++char const* const* terminal_client_get_environment_filters (void); ++ ++char** terminal_client_filter_environment (char** envv) G_GNUC_MALLOC; + + G_END_DECLS + +diff --git a/src/terminal-screen.c b/src/terminal-screen.c +index 0c4ee50..0e447ae 100644 +--- a/src/terminal-screen.c ++++ b/src/terminal-screen.c +@@ -21,6 +21,7 @@ + #include "terminal-pcre2.h" + #include "terminal-regex.h" + #include "terminal-screen.h" ++#include "terminal-client-utils.h" + + #include + #include +@@ -1455,20 +1456,10 @@ terminal_screen_get_child_environment (TerminalScreen *screen, + } + } + +- g_hash_table_remove (env_table, "COLUMNS"); +- g_hash_table_remove (env_table, "LINES"); +- g_hash_table_remove (env_table, "GNOME_DESKTOP_ICON"); +- +- /* WINDOWID does not work correctly ever since we don't use a native +- * GdkWindow anymore, and it also becomes incorrect if the screen is +- * moved to a different window, or the window unrealized and re-realized. +- * Additionally, it cannot ever work on non-X11 displays like wayland. +- * And on X11, the only use for this is broken foreign drawing on the +- * window (w3m etc), and trying to find the focused screen (brltty), +- * which can now be done correctly using DECSET 1004. +- * Therefore we do not set WINDOWID, and remove an existing variable. +- */ +- g_hash_table_remove (env_table, "WINDOWID"); ++ /* Remove unwanted env variables */ ++ char const* const* filters = terminal_client_get_environment_filters (); ++ for (i = 0; filters[i]; ++i) ++ g_hash_table_remove (env_table, filters[i]); + + terminal_util_add_proxy_env (env_table); + -- cgit v1.2.3