[gdbserver/win32] fatal "glob could not process pattern '(null)'" error
authorJoel Brobecker <brobecker@adacore.com>
Thu, 10 May 2018 15:23:10 +0000 (10:23 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Thu, 10 May 2018 15:23:10 +0000 (11:23 -0400)
commit906994d9d50eb40dc89a5bf0830e15ed10938641
treeccaba6d35eca41e6398fe3e4f72ffa9527533c79
parent637b19704cf8325875de8df4f8b000197d261e3b
[gdbserver/win32] fatal "glob could not process pattern '(null)'" error

Trying to start GDBserver on Windows currently yields the following
error...

    $ gdbserver.exe --once :4444 simple_main.exe
    glob could not process pattern '(null)'.
    Exiting

... after which GDB terminates with a nonzero status.

This is because create_process in win32-low.c calls gdb_tilde_expand
with the result of a call to get_inferior_cwd without verifying that
the returned directory is not NULL:

    | static BOOL
    | create_process (const char *program, char *args,
    |                 DWORD flags, PROCESS_INFORMATION *pi)
    | {
    |   const char *inferior_cwd = get_inferior_cwd ();
    |   std::string expanded_infcwd = gdb_tilde_expand (inferior_cwd);

This patch avoids this by only calling gdb_tilde_expand when
INFERIOR_CWD is not NULL, which is similar to what is done on
GNU/Linux for instance.

gdb/gdbserver/ChangeLog:

        PR server/23158:
        * win32-low.c (create_process): Only call gdb_tilde_expand if
        inferior_cwd is not NULL.
gdb/gdbserver/ChangeLog
gdb/gdbserver/win32-low.c