summaryrefslogtreecommitdiff
path: root/xserver/hw/xfree86/parser/write.c
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2012-06-10 13:21:33 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2012-06-10 13:21:33 +0000
commit171e929a08098b6c844887adc43879c7579dc15f (patch)
tree6b4d2e3bc20dbd4dc9a1f031416e66614c53dd21 /xserver/hw/xfree86/parser/write.c
parent68781b09de2c95b87ea898c4ecf3018dfb4460d2 (diff)
Update to xserver 1.12.2. tested by naddy@, krw@, mpi@.
Diffstat (limited to 'xserver/hw/xfree86/parser/write.c')
-rw-r--r--xserver/hw/xfree86/parser/write.c187
1 files changed, 88 insertions, 99 deletions
diff --git a/xserver/hw/xfree86/parser/write.c b/xserver/hw/xfree86/parser/write.c
index eea3f0693..c001c3d51 100644
--- a/xserver/hw/xfree86/parser/write.c
+++ b/xserver/hw/xfree86/parser/write.c
@@ -51,7 +51,6 @@
* authorization from the copyright holder(s) and author(s).
*/
-
/* View/edit this file with tab stops set to 4 */
#ifdef HAVE_XORG_CONFIG_H
@@ -83,134 +82,124 @@
#endif
Local int
-doWriteConfigFile (const char *filename, XF86ConfigPtr cptr)
+doWriteConfigFile(const char *filename, XF86ConfigPtr cptr)
{
- FILE *cf;
+ FILE *cf;
- if ((cf = fopen (filename, "w")) == NULL)
- {
- return 0;
- }
+ if ((cf = fopen(filename, "w")) == NULL) {
+ return 0;
+ }
- if (cptr->conf_comment)
- fprintf (cf, "%s\n", cptr->conf_comment);
+ if (cptr->conf_comment)
+ fprintf(cf, "%s\n", cptr->conf_comment);
- xf86printLayoutSection (cf, cptr->conf_layout_lst);
+ xf86printLayoutSection(cf, cptr->conf_layout_lst);
- if (cptr->conf_files != NULL)
- {
- fprintf (cf, "Section \"Files\"\n");
- xf86printFileSection (cf, cptr->conf_files);
- fprintf (cf, "EndSection\n\n");
- }
+ if (cptr->conf_files != NULL) {
+ fprintf(cf, "Section \"Files\"\n");
+ xf86printFileSection(cf, cptr->conf_files);
+ fprintf(cf, "EndSection\n\n");
+ }
- if (cptr->conf_modules != NULL)
- {
- fprintf (cf, "Section \"Module\"\n");
- xf86printModuleSection (cf, cptr->conf_modules);
- fprintf (cf, "EndSection\n\n");
- }
+ if (cptr->conf_modules != NULL) {
+ fprintf(cf, "Section \"Module\"\n");
+ xf86printModuleSection(cf, cptr->conf_modules);
+ fprintf(cf, "EndSection\n\n");
+ }
- xf86printVendorSection (cf, cptr->conf_vendor_lst);
+ xf86printVendorSection(cf, cptr->conf_vendor_lst);
- xf86printServerFlagsSection (cf, cptr->conf_flags);
+ xf86printServerFlagsSection(cf, cptr->conf_flags);
- xf86printInputSection (cf, cptr->conf_input_lst);
+ xf86printInputSection(cf, cptr->conf_input_lst);
- xf86printInputClassSection (cf, cptr->conf_inputclass_lst);
+ xf86printInputClassSection(cf, cptr->conf_inputclass_lst);
- xf86printVideoAdaptorSection (cf, cptr->conf_videoadaptor_lst);
+ xf86printVideoAdaptorSection(cf, cptr->conf_videoadaptor_lst);
- xf86printModesSection (cf, cptr->conf_modes_lst);
+ xf86printModesSection(cf, cptr->conf_modes_lst);
- xf86printMonitorSection (cf, cptr->conf_monitor_lst);
+ xf86printMonitorSection(cf, cptr->conf_monitor_lst);
- xf86printDeviceSection (cf, cptr->conf_device_lst);
+ xf86printDeviceSection(cf, cptr->conf_device_lst);
- xf86printScreenSection (cf, cptr->conf_screen_lst);
+ xf86printScreenSection(cf, cptr->conf_screen_lst);
- xf86printDRISection (cf, cptr->conf_dri);
+ xf86printDRISection(cf, cptr->conf_dri);
- xf86printExtensionsSection (cf, cptr->conf_extensions);
+ xf86printExtensionsSection(cf, cptr->conf_extensions);
- fclose(cf);
- return 1;
+ fclose(cf);
+ return 1;
}
#ifndef HAS_NO_UIDS
int
-xf86writeConfigFile (const char *filename, XF86ConfigPtr cptr)
+xf86writeConfigFile(const char *filename, XF86ConfigPtr cptr)
{
- int ret;
+ int ret;
#if !defined(HAS_SAVED_IDS_AND_SETEUID)
- int pid, p;
- int status;
- void (*csig)(int);
+ int pid, p;
+ int status;
+ void (*csig) (int);
#else
- int ruid, euid;
+ int ruid, euid;
#endif
- if (getuid() != geteuid())
- {
+ if (getuid() != geteuid()) {
#if !defined(HAS_SAVED_IDS_AND_SETEUID)
- /* Need to fork to change ruid without loosing euid */
- csig = signal(SIGCHLD, SIG_DFL);
- switch ((pid = fork()))
- {
- case -1:
- ErrorF("xf86writeConfigFile(): fork failed (%s)\n",
- strerror(errno));
- return 0;
- case 0: /* child */
- if (setuid(getuid()) == -1)
- FatalError("xf86writeConfigFile(): "
- "setuid failed(%s)\n",
- strerror(errno));
- ret = doWriteConfigFile(filename, cptr);
- exit(ret);
- break;
- default: /* parent */
- do
- {
- p = waitpid(pid, &status, 0);
- } while (p == -1 && errno == EINTR);
- }
- signal(SIGCHLD, csig);
- if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
- return 1; /* success */
- else
- return 0;
-
-#else /* HAS_SAVED_IDS_AND_SETEUID */
-
- ruid = getuid();
- euid = geteuid();
-
- if (seteuid(ruid) == -1)
- {
- ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
- ruid, strerror(errno));
- return 0;
- }
- ret = doWriteConfigFile(filename, cptr);
-
- if (seteuid(euid) == -1)
- {
- ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
- euid, strerror(errno));
- }
- return ret;
-
-#endif /* HAS_SAVED_IDS_AND_SETEUID */
-
- }
- else
- {
- return doWriteConfigFile(filename, cptr);
- }
+ /* Need to fork to change ruid without loosing euid */
+ csig = signal(SIGCHLD, SIG_DFL);
+ switch ((pid = fork())) {
+ case -1:
+ ErrorF("xf86writeConfigFile(): fork failed (%s)\n",
+ strerror(errno));
+ return 0;
+ case 0: /* child */
+ if (setuid(getuid()) == -1)
+ FatalError("xf86writeConfigFile(): "
+ "setuid failed(%s)\n", strerror(errno));
+ ret = doWriteConfigFile(filename, cptr);
+ exit(ret);
+ break;
+ default: /* parent */
+ do {
+ p = waitpid(pid, &status, 0);
+ } while (p == -1 && errno == EINTR);
+ }
+ signal(SIGCHLD, csig);
+ if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
+ return 1; /* success */
+ else
+ return 0;
+
+#else /* HAS_SAVED_IDS_AND_SETEUID */
+
+ ruid = getuid();
+ euid = geteuid();
+
+ if (seteuid(ruid) == -1) {
+ ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
+ ruid, strerror(errno));
+ return 0;
+ }
+ ret = doWriteConfigFile(filename, cptr);
+
+ if (seteuid(euid) == -1) {
+ ErrorF("xf86writeConfigFile(): seteuid(%d) failed (%s)\n",
+ euid, strerror(errno));
+ }
+ return ret;
+
+#endif /* HAS_SAVED_IDS_AND_SETEUID */
+
+ }
+ else {
+ return doWriteConfigFile(filename, cptr);
+ }
}
-#endif /* !HAS_NO_UIDS */
+#endif /* !HAS_NO_UIDS */