[LightDM] About xauthority file in lightdm. It seems to me that xauthority file will be broken.

_ katsuya k_sinoha at hotmail.com
Sun Jul 25 13:38:22 UTC 2021


Hi all,
I'm katsuya.

In my environment using XDMCP, the xauthority file (/var/run/lightdm/ligtdm/xauthority) is corrupetd.

The xauthority file is opend as follows:

In src/x-authority.c at line 323,

    int output_fd = g_open (filename, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR);

The second argv isn't set O_TRANC, the xauthority file is opend as it is if it exists.
At line 352, the file is synced and closed.

The xauthority file includes  the back part of the original file.

I thinks there are two ways to avoid this.

1: open the xauthority file with O_TRANC.
    int output_fd = g_open (filename, O_WRONLY | O_CREAT | O_TRANC, S_IRUSR | S_IWUSR);

2: write EOF before syncing & closing the file

    g_list_free_full (records, g_object_unref);
// add from here
   char eof_buf[1];
   eof_buf[0]=EOF;
    write (output_fd, &eof_buf[0], 1);
// add to here
    fsync (output_fd);
    close (output_fd);

 best regards, 
  katsuya


More information about the LightDM mailing list