From 4e1916d48e3b16906f2ddb37a4ab6d274f5e49df Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: May 22 2016 01:24:39 +0000 Subject: awol patch --- diff --git a/0002-Fix-race-in-which-the-file-containing-the-X11-cookie.patch b/0002-Fix-race-in-which-the-file-containing-the-X11-cookie.patch new file mode 100644 index 0000000..7e934f0 --- /dev/null +++ b/0002-Fix-race-in-which-the-file-containing-the-X11-cookie.patch @@ -0,0 +1,38 @@ +From 72f3702dbe6cf15c06dc13da2c99c864e9022a58 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Sat, 21 May 2016 17:48:36 +0200 +Subject: [PATCH 2/2] Fix race in which the file containing the X11 cookie has + the wrong permissions for a small while + +if someone is very fast can watch the file between the open and the setPermissions + +REVIEW: 127973 +Acked-by: mpyne +--- + src/kdeinit/kinit.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/kdeinit/kinit.cpp b/src/kdeinit/kinit.cpp +index 19e38b8..216c87e 100644 +--- a/src/kdeinit/kinit.cpp ++++ b/src/kdeinit/kinit.cpp +@@ -1530,13 +1530,15 @@ static void setupX() + + QString::number(getuid()) + QLatin1Char('-') + QString::fromLocal8Bit(display); + QSaveFile xauthfile(xauth); + QFile xauthfrom(QFile::decodeName(qgetenv("XAUTHORITY"))); ++ // Set umask to make sure the file permissions of xauthfile are correct ++ mode_t oldMask = umask(S_IRGRP | S_IROTH | S_IWGRP | S_IWOTH); + if (!xauthfrom.open(QFile::ReadOnly) || !xauthfile.open(QFile::WriteOnly) +- || !xauthfile.setPermissions(QFile::ReadOwner | QFile::WriteOwner) + || xauthfile.write(xauthfrom.readAll()) != xauthfrom.size() || !xauthfile.commit()) { + // error + } else { + qputenv("XAUTHORITY", QFile::encodeName(xauth)); + } ++ umask(oldMask); + } + } + +-- +2.7.4 +