Am 19.10.2017 22:18, schrieb Tobias Stoeckmann:
> If the environment variable HOME is empty, XauFileName triggers an
> out of boundary read access (name[1]). 

true but if HOME="" perhaps we could simply return

If HOME consists of a single
> character relative path, the output becomes unexpected, because
> "HOME=a" leads to "a.Xauthority" instead of "a/.Xauthority". Granted,
> a relative HOME path leads to trouble in general, the code should
> properly return "a/.Xauthority" nonetheless.

Why is that massage for slashDotXauthority done in the first place ?
if we drop it:
HOME  + "/.Xauthority" =
""    + "/.Xauthority" = "/.Xauthority"
"a"   + "/.Xauthority" = "a/.Xauthority"
"a/"  + "/.Xauthority" = "a//.Xauthority"

a "//" will be condensed to "/" by the system

did i miss something ?

re,
 wh

> 
> Signed-off-by: Tobias Stoeckmann <[email protected]>
> ---
>  AuFileName.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/AuFileName.c b/AuFileName.c
> index 37c8b62..2946c80 100644
> --- a/AuFileName.c
> +++ b/AuFileName.c
> @@ -85,6 +85,6 @@ XauFileName (void)
>       bsize = size;
>      }
>      snprintf (buf, bsize, "%s%s", name,
> -              slashDotXauthority + (name[1] == '\0' ? 1 : 0));
> +              slashDotXauthority + (name[0] == '/' && name[1] == '\0' ? 1 : 
> 0));
>      return buf;
>  }
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to