]> source.dussan.org Git - tigervnc.git/commitdiff
Use mcookie to generate X server cookie
authorPierre Ossman <ossman@cendio.se>
Tue, 29 Dec 2015 13:27:07 +0000 (14:27 +0100)
committerBrian P. Hinz <bphinz@users.sf.net>
Mon, 4 Jan 2016 02:58:29 +0000 (21:58 -0500)
unix/vncserver

index a4d6ad939da68cb37cc40ac23d7d28fa5038826d..725cbd54b9bd82c1cb034166d8fec5ec5fbf65b8 100755 (executable)
@@ -238,24 +238,9 @@ $vncPort = 5900 + $displayNumber;
 $desktopLog = "$vncUserDir/$host:$displayNumber.log";
 unlink($desktopLog);
 
-# Make an X server cookie - use /dev/urandom on systems that have it,
-# otherwise use perl's random number generator, seeded with the sum
-# of the current time, our PID and part of the encrypted form of the password.
-
-my $cookie = "";
-if (open(URANDOM, '<', '/dev/urandom')) {
-  my $randata;
-  if (sysread(URANDOM, $randata, 16) == 16) {
-    $cookie = unpack 'h*', $randata;
-  }
-  close(URANDOM);
-}
-if ($cookie eq "") {
-  srand(time+$$+unpack("L",`cat $vncUserDir/passwd`));
-  for (1..16) {
-    $cookie .= sprintf("%02x", int(rand(256)) % 256);
-  }
-}
+# Make an X server cookie and set up the Xauthority file
+
+$cookie = `mcookie`;
 
 system("xauth -f $xauthorityFile add $host:$displayNumber . $cookie");
 system("xauth -f $xauthorityFile add $host/unix:$displayNumber . $cookie"); 
@@ -791,7 +776,7 @@ sub SanityCheck
     #
 
  cmd:
-    foreach $cmd ("uname","xauth") {
+    foreach $cmd ("uname","mcookie","xauth") {
        for (split(/:/,$ENV{PATH})) {
            if (-x "$_/$cmd") {
                next cmd;