Re: [PATCH] gdb: check for empty strings in get_standard_cache_dir/get_standard_config_dir

Simon Marchi via Gdb-patches
2021-01-07T21:53:15Z

On 2021-01-07 4:43 p.m., Lancelot SIX wrote:
> Hi
>> Ok, I can try this as a follow-up patch, check that the path
>> is absolute using the IS_ABSOLUTE_PATH macro.  Is a tilde path
>> considered absolute? Like
>>
>>    ~/my-cache
>>    ~smarchi/my-cache
> I would be tempted to say that it is not (according to https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html it seems it is not).

I wouldn't mind not supporting tilde paths, but since it worked up to now,
it could be seen as a regression by some.

>> I suppose that it is, since it's just a shortcut for
>> /home/smarchi.
>
> This actually is the most usual pattern, but the home directory of smarchi could be different. The actual answer is in /etc/passwd or accessed via getent:
>
> $ getent passwd smarchi | awk -F: '{ print $6 }'

Right. If we want to support it, we would presumably use gdb_tilde_expand,
which uses glob(3), which gets the real user home.

What's annoying though is that glob won't work with non-existent directories.
So if I use

/home/smarchi/my/non/existent/directory

it is accepted, and these directories will be created. But I set

~/my/non/existent/directory

gdb_tilde_expand will fail. Perhaps it's just a limitation of gdb_tilde_expand,
and it should be changed to use something else than glob(3) in order to support
non-existent paths.

Simon