gdb: fix null pointer dereference on missing PATH variable

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
This commit is contained in:
Daniel Starke
2025-03-04 22:50:11 +01:00
committed by Simon Marchi
parent 4ad3a0115d
commit e283a28689

View 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. */