On 2011-07-18 11:00, Mike Gabriel wrote: > On So 17 Jul 2011 22:40:09 CEST Reinhard Tartler wrote: > >>> BUFSIZ origin in stdio.h >>> http://cboard.cprogramming.com/c-programming/84272-bufsiz-value.html >> >> 256 bytes sounds pretty small to me. Of course it will work on most >> cases, but no need to be cheap here.. > > I guess you are right. Do you think you could provide the necessary > changes?
Ok, here's a patch. I prefer make more then less checks.... Comments? Cheers Morry -- Dipl.-Ing. Moritz 'Morty' Struebe (Wissenschaftlicher Mitarbeiter) Lehrstuhl für Informatik 4 (Verteilte Systeme und Betriebssysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Martensstr. 1 91058 Erlangen Tel : +49 9131 85-25419 Fax : +49 9131 85-28732 eMail : [email protected] WWW : http://www4.informatik.uni-erlangen.de/~morty
From 19814f04692d97e41c942e628034d7e89102716f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20'Morty'=20Str=C3=BCbe?= <[email protected]> Date: Mon, 18 Jul 2011 11:35:23 +0200 Subject: [PATCH] Make wrapper more robust --- .../html/man8/x2gocleansessions.8.html | 2 +- .../html/man8/x2gocmdexitmessage.8.html | 2 +- .../html/man8/x2golistdesktops.8.html | 2 +- .../html/man8/x2golistsessions.8.html | 2 +- .../.build_man2html/html/man8/x2gomountdirs.8.html | 2 +- .../.build_man2html/html/man8/x2goprint.8.html | 2 +- .../html/man8/x2goresume-session.8.html | 2 +- .../html/man8/x2goruncommand.8.html | 2 +- .../html/man8/x2goshowblocks.8.html | 2 +- .../html/man8/x2gostartagent.8.html | 2 +- .../html/man8/x2gosuspend-session.8.html | 2 +- .../html/man8/x2goterminate-session.8.html | 2 +- .../html/man8/x2goumount-session.8.html | 2 +- x2goserver/x2gosqlitewrapper.c | 57 ++++++++++++++++---- 14 files changed, 60 insertions(+), 23 deletions(-) diff --git a/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html b/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html index 8d896e5..901eead 100644 --- a/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gocleansessions.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html b/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html index 8c45019..245773f 100644 --- a/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gocmdexitmessage.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html b/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html index 535f75b..bab9b6a 100644 --- a/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html +++ b/x2goserver/.build_man2html/html/man8/x2golistdesktops.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html b/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html index 9d42577..a761aae 100644 --- a/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html +++ b/x2goserver/.build_man2html/html/man8/x2golistsessions.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html b/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html index c0c64b5..d597152 100644 --- a/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gomountdirs.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goprint.8.html b/x2goserver/.build_man2html/html/man8/x2goprint.8.html index e42f484..52becbc 100644 --- a/x2goserver/.build_man2html/html/man8/x2goprint.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goprint.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html b/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html index 4c6c3e0..4fdc3f1 100644 --- a/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goresume-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html b/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html index c9aff9e..a0b4af3 100644 --- a/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goruncommand.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html b/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html index c9aff9e..a0b4af3 100644 --- a/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goshowblocks.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html b/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html index a5c2f51..04eafa7 100644 --- a/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gostartagent.8.html @@ -60,6 +60,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html b/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html index 2c28940..bd2b5f0 100644 --- a/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2gosuspend-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html b/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html index 063b1fa..2c96b7d 100644 --- a/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goterminate-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html b/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html index 3a4f259..745d261 100644 --- a/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html +++ b/x2goserver/.build_man2html/html/man8/x2goumount-session.8.html @@ -44,6 +44,6 @@ This manual has been written by Mike Gabriel <<A HREF="mailto:mike.gabriel@da This document was created by <A HREF="/cgi-bin/man/man2html">man2html</A>, using the manual pages.<BR> -Time: 19:49:43 GMT, July 17, 2011 +Time: 09:33:13 GMT, July 18, 2011 </BODY> </HTML> diff --git a/x2goserver/x2gosqlitewrapper.c b/x2goserver/x2gosqlitewrapper.c index b702aa7..b4bb43e 100644 --- a/x2goserver/x2gosqlitewrapper.c +++ b/x2goserver/x2gosqlitewrapper.c @@ -24,22 +24,59 @@ #include <stdlib.h> #include <unistd.h> #include <libgen.h> +#include <errno.h> + -int main( int argc, char *argv[] ) { - char buffer[BUFSIZ]; + +int main( int argc, char *argv[] ) { char * x2gosqlitewrapper = NULL; + size_t path_max; + +/* + The following snippet is taken from the realpath manpage +*/ +#ifdef PATH_MAX + path_max = PATH_MAX; +#else + path_max = pathconf (".", _PC_PATH_MAX); + if (path_max <= 0){ + path_max = 4096; + } +#endif + { + // allocate dynamic buffer in stack: this needs C99 or gnu?? + char buffer[path_max]; + ssize_t rvrl; + int rvap; + + // resolve link of /proc/self/exe + rvrl = readlink("/proc/self/exe", buffer, path_max); + if(rvrl == -1){ + perror("readlink(\"/proc/self/exe\",buffer,path_max)"); + exit(EXIT_FAILURE); + } + if(rvrl >= path_max){ + fprintf(stderr, "Could not resolve the path of this file using \"/proc/self/exe\". The path is to long (> %i)", path_max); + exit(EXIT_FAILURE); + } + + + // derive the full path of x2gosqlitewrapper.pl from path of this binary + rvap = asprintf(&x2gosqlitewrapper, "%s/%s", dirname(dirname(buffer)), "lib/x2go/x2gosqlitewrapper.pl"); + if(rvap == -1){ + fprintf(stderr, "Failed to allocate memory calling asprintf\n"); + exit(EXIT_FAILURE); + } - // resolve link of /proc/self/exe - readlink("/proc/self/exe", buffer, BUFSIZ); - // derive the full path of x2gosqlitewrapper.pl from path of this binary - asprintf(&x2gosqlitewrapper, "%s/%s", dirname(dirname(buffer)), "lib/x2go/x2gosqlitewrapper.pl"); + // execute the script, taking setuid bit into consideration if set... + execv(x2gosqlitewrapper, argv); - // execute the script, taking setuid bit into consideration if set... - execv(x2gosqlitewrapper, argv); + } - // fake a successful return value - return 0; + // ...fail + fprintf(stderr, "Failed to execute %s: %s\n", x2gosqlitewrapper, strerror(errno)); + return EXIT_FAILURE; } -- 1.7.2.5
smime.p7s
Description: S/MIME Kryptografische Unterschrift
_______________________________________________ X2go-Dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/x2go-dev
