Hello,

this message belongs to thread
http://lists.x.org/archives/xorg-devel/2010-September/012519.html.

Improved patch addresses issue with the SUID servers.

Reason why I need -xkbcompdir parameter is that in TigerVNC upstream
we ship prebuilt Xvnc server. Different distributions can have
different locations of the xkbcomp utility so when we, for example,
compile Xvnc with hardcoded "/usr/bin/xkbcomp" path then it's
impossible to start this precompiled Xvnc with xkbcomp somewhere in
/opt/* or in /usr/local/bin/.

I would like to ask you to reconsider your nack, please, improved
patch is attached.

Regards, Adam

-- 
Adam Tkac, Red Hat, Inc.
Subject: [PATCH 2/2] Add -xkbcompdir parameter to modify "xkbcomp" path from 
commandline.

Signed-off-by: Adam Tkac <[email protected]>
---
 xkb/xkbInit.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index fbf8f14..29fb33e 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -742,7 +742,28 @@ XkbProcessArguments(int argc,char *argv[],int i)
            }
        }
        return j;
+    } else if (strncmp(argv[i], "-xkbcompdir", 11)==0) {
+       if (++i < argc) {
+#if !defined(WIN32) && !defined(__CYGWIN__)
+            if (getuid() != geteuid()) {
+                LogMessage(X_WARNING, "-xkbcompdir is not available for setuid 
X servers\n");
+                return -1;
+            } else
+#endif
+           {
+               if (strlen(argv[i]) < PATH_MAX) {
+                   XkbBinDirectory = argv[i];
+                   return 2;
+               } else {
+                   LogMessage(X_ERROR, "-xkbcompdir pathname too long\n");
+                   return -1;
+               }
+           }
+       } else {
+           return -1;
+       }
     }
+
     if ((strcmp(argv[i], "-ardelay") == 0) ||
         (strcmp (argv[i], "-ar1") == 0)) {     /* -ardelay int */
        if (++i >= argc) UseMsg ();
-- 
1.7.2.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to