Hi,

On Mon, Aug 05, 2024 at 05:42:54PM +0200, a...@dismail.de wrote:
Hi Rodrigo,

On Mon, 5 Aug 2024 15:06:04 +0200
Rodrigo Arias <rodar...@gmail.com> wrote:

>> I think we could just not allow $HOME to be set as save_dir (or any
>> directory that contains $HOME, like /home) and refuse to start if
>> this is the case.

Sorry, I guess this is the part that confused me:
"(or any directory that contains $HOME, like /home)"

I agree with it, just not sure how to implement while still allowing a
save_dir like '$HOME/Downloads', or '/home/user/Downloads'.

Maybe it's a simple thing, but any help would be appreciated!

By "contains" I mean that $HOME cannot be inside save_dir:

bad: save_dir=/
bad: save_dir=/home
bad: save_dir=/home/<theuser>
ok: save_dir=/home/<theuser>/foo
ok: save_dir=/tmp

Here is a very simple check (doesn't handle /../ and other problems):

  const char *home = dGethomedir();
  const char *save = prefs.save_dir;
  int nsave = strlen(save);
  int nhome = strlen(home);

  if (nsave <= nhome) {
     /* Prevent save_dir="/home" and save_dir=$HOME */
     if (strncmp(save, home, nsave) == 0) {
        MSG("save_dir cannot contain home\n");
        exit(1);
     }
  }

Best,
Rodrigo.
_______________________________________________
Dillo-dev mailing list -- dillo-dev@mailman3.com
To unsubscribe send an email to dillo-dev-le...@mailman3.com

Reply via email to