]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gdb: fix null pointer dereference on missing PATH variable
authorDaniel Starke <daniel-email@gmx.net>
Tue, 4 Mar 2025 21:50:11 +0000 (22:50 +0100)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 5 Mar 2025 15:51:29 +0000 (10:51 -0500)
When running "show" with missing PATH variable a null pointer is being
dereferenced in path_info().

path_command() correctly checks whether PATH has been set before using it.
It then calls path_info() which retrieves the variable again but fails to
perform the null pointer test on it. As a result, the application crashes with
SIGSEGV on Windows for example.

Fix this by handling the null pointer case in path_info() accordingly.

Signed-off-by: Daniel Starke <daniel-email@gmx.net>
Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
Approved-By: Tom Tromey <tom@tromey.com>
Change-Id: I41ef10f00802d3163793491454190008e78f5dc1

gdb/infcmd.c

index 00703e44b7b5e7e070eb2080f96323d68f163609..74e1e26327b04d523de57f945813a88b49276339 100644 (file)
@@ -2115,9 +2115,10 @@ static const char path_var_name[] = "PATH";
 static void
 path_info (const char *args, int from_tty)
 {
-  gdb_puts ("Executable and object file path: ");
-  gdb_puts (current_inferior ()->environment.get (path_var_name));
-  gdb_puts ("\n");
+  const char *env = current_inferior ()->environment.get (path_var_name);
+
+  gdb_printf (_("Executable and object file path: %s\n"),
+             env != nullptr ? env : "");
 }
 
 /* Add zero or more directories to the front of the execution path.  */