diff --git a/common/os_calls.c b/common/os_calls.c index 4269faba..3a798c46 100644 --- a/common/os_calls.c +++ b/common/os_calls.c @@ -896,6 +896,20 @@ g_execlp11(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6, #endif } +/*****************************************************************************/ +int +g_execlp13(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6, + char* a7, char* a8, char* a9, char* a10, char* a11, + char* a12, char* a13) +{ +#if defined(_WIN32) + return 0; +#else + return execlp(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, + a12, a13, (void*)0); +#endif +} + /*****************************************************************************/ void g_signal(int sig_num, void (*func)(int)) diff --git a/common/os_calls.h b/common/os_calls.h index b28dc4ea..52d958ee 100644 --- a/common/os_calls.h +++ b/common/os_calls.h @@ -146,6 +146,10 @@ g_execlp3(char* a1, char* a2, char* a3); int g_execlp11(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6, char* a7, char* a8, char* a9, char* a10, char* a11); +int +g_execlp13(char* a1, char* a2, char* a3, char* a4, char* a5, char* a6, + char* a7, char* a8, char* a9, char* a10, char* a11, + char* a12, char* a13); void g_signal(int sig_num, void (*func)(int)); void diff --git a/sesman/session.c b/sesman/session.c index fa7b15b2..f368e71b 100644 --- a/sesman/session.c +++ b/sesman/session.c @@ -230,13 +230,14 @@ for user %s denied", username); env_check_password_file(passwd_file, password); if (type == SESMAN_SESSION_TYPE_XVNC) { - g_execlp11("Xvnc", "Xvnc", screen, "-geometry", geometry, - "-depth", depth, "-bs", "-rfbauth", passwd_file, 0); + g_execlp13("Xvnc", "Xvnc", screen, "-geometry", geometry, + "-depth", depth, "-bs", "-ac", "-rfbauth", passwd_file, + 0, 0); } else if (type == SESMAN_SESSION_TYPE_XRDP) { g_execlp11("Xrdp", "Xrdp", screen, "-geometry", geometry, - "-depth", depth, "-bs", 0, 0, 0); + "-depth", depth, "-bs", "-ac", 0, 0); } else {