Projects
Eulaceura:Mainline:GA
xorg-x11-xinit
_service:obs_scm:xinit-1.0.2-client-session.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:xinit-1.0.2-client-session.patch of Package xorg-x11-xinit
diff -up xinit-1.3.4/xinit.c.client-session xinit-1.3.4/xinit.c --- xinit-1.3.4/xinit.c.client-session 2014-03-25 10:20:26.000000000 +0100 +++ xinit-1.3.4/xinit.c 2014-09-11 17:03:30.928360694 +0200 @@ -89,6 +89,8 @@ char xserverrcbuf[256]; #define TRUE 1 #define FALSE 0 +#define OK_EXIT 0 +#define ERR_EXIT 1 static char *default_server = "X"; static char *default_display = ":0"; /* choose most efficient */ @@ -560,6 +562,7 @@ startClient(char *client_argv[]) { clientpid = fork(); if (clientpid == 0) { + int fd; set_environment(); setWindowPath(); @@ -567,7 +570,16 @@ startClient(char *client_argv[]) Error("cannot change uid"); _exit(EXIT_FAILURE); } - setpgid(0, getpid()); + fd = open ("/dev/null", O_RDONLY); + + if (fd < 0) { + Error("cannot open /dev/null: %s\n", strerror(errno)); + _exit(ERR_EXIT); + } + close (STDIN_FILENO); + dup2 (fd, STDIN_FILENO); + close (fd); + setsid(); Execute(client_argv); Error("Unable to run program \"%s\"", client_argv[0]);
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2