sesman: run sessvc and chansrv as user, not root

ulab-next
Jay Sorg 12 years ago
parent ef9e044c7e
commit 10e283ed16

@ -214,7 +214,7 @@ x_server_running(int display)
/******************************************************************************/ /******************************************************************************/
static void DEFAULT_CC static void DEFAULT_CC
session_start_sessvc(int xpid, int wmpid, long data) session_start_sessvc(int xpid, int wmpid, long data, char* username, int display)
{ {
struct list * sessvc_params = (struct list *)NULL; struct list * sessvc_params = (struct list *)NULL;
char wmpid_str[25]; char wmpid_str[25];
@ -245,6 +245,8 @@ session_start_sessvc(int xpid, int wmpid, long data)
list_add_item(sessvc_params, (long)g_strdup(wmpid_str)); list_add_item(sessvc_params, (long)g_strdup(wmpid_str));
list_add_item(sessvc_params, 0); /* mandatory */ list_add_item(sessvc_params, 0); /* mandatory */
env_set_user(username, 0, display);
/* executing sessvc */ /* executing sessvc */
g_execvp(exe_path, ((char**)sessvc_params->items)); g_execvp(exe_path, ((char**)sessvc_params->items));
@ -593,7 +595,7 @@ session_start_fork(int width, int height, int bpp, char* username,
g_snprintf(text, 255, ":%d.0", display); g_snprintf(text, 255, ":%d.0", display);
g_setenv("DISPLAY", text, 1); g_setenv("DISPLAY", text, 1);
/* new style waiting for clients */ /* new style waiting for clients */
session_start_sessvc(xpid, wmpid, data); session_start_sessvc(xpid, wmpid, data, username, display);
} }
} }
} }

Loading…
Cancel
Save