author | X gate hg captive account <xhg@xserver.us.oracle.com> |
Wed, 26 Apr 2017 14:52:19 -0700 | |
changeset 1710 | a9aea92d6fb5 |
parent 1568 | f85b5a8a5c43 |
permissions | -rw-r--r-- |
1117
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
1 |
/* |
1568
f85b5a8a5c43
21661553 Reduce parfait warnings in X builds
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
1117
diff
changeset
|
2 |
* Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved. |
1117
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
3 |
* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
4 |
* Permission is hereby granted, free of charge, to any person obtaining a |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
5 |
* copy of this software and associated documentation files (the "Software"), |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
6 |
* to deal in the Software without restriction, including without limitation |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
7 |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
8 |
* and/or sell copies of the Software, and to permit persons to whom the |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
9 |
* Software is furnished to do so, subject to the following conditions: |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
10 |
* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
11 |
* The above copyright notice and this permission notice (including the next |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
12 |
* paragraph) shall be included in all copies or substantial portions of the |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
13 |
* Software. |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
14 |
* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
15 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
16 |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
17 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
18 |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
19 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
20 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
21 |
* DEALINGS IN THE SOFTWARE. |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
22 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
23 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
24 |
/* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
25 |
* fbc_append_config - Append configuration file supplement |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
26 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
27 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
28 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
29 |
#include <stdio.h> /* NULL */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
30 |
#include <stdlib.h> /* exit() */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
31 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
32 |
#include "xf86Parser.h" /* Public function, etc. declarations */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
33 |
#include "Configint.h" /* Private definitions, etc. */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
34 |
#include "configProcs.h" /* Private function, etc. declarations */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
35 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
36 |
#include "fbc.h" /* Common fbconf_xorg(1M) definitions */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
37 |
#include "fbc_append_config.h" /* Append configuration file supplement */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
38 |
#include "fbc_error.h" /* Error reporting */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
39 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
40 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
41 |
/* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
42 |
* fbc_append_config() |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
43 |
* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
44 |
* Open a configuration supplement file and append it to the Internal |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
45 |
* and External representation of the current configuration. |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
46 |
* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
47 |
* A supplement name and corresponding supplement pathname might be: |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
48 |
* "SunModes" /usr/lib/fbconfig/SunModes_xorg.conf |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
49 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
50 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
51 |
int |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
52 |
fbc_append_config( |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
53 |
XF86ConfigPtr configIR, /* Config Internal Representation */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
54 |
const char *supplement_name) /* Config supplement name prefix */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
55 |
{ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
56 |
const char *supplement_path; /* Config supplement pathname */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
57 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
58 |
/* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
59 |
* Open the config supplement file, /usr/lib/fbconfig/<name>_xorg.conf |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
60 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
61 |
supplement_path = xf86openConfigFileIn("%P/%R_xorg.conf", |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
62 |
supplement_name, |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
63 |
FBC_LIB_DIR); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
64 |
if (supplement_path == NULL) { |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
65 |
return (FBC_ERR_OPEN); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
66 |
} |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
67 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
68 |
#if (0) /* This may or may not be necessary */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
69 |
/* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
70 |
* Set effective UID to real UID while reading config file |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
71 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
72 |
if (euid != uid) { |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
73 |
if (seteuid(uid) != 0) { |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
74 |
fbc_errormsg( |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
75 |
"Unable to set effective user ID\n"); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
76 |
exit(FBC_EXIT_FAILURE); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
77 |
} |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
78 |
} |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
79 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
80 |
#endif /* This may or may not be necessary */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
81 |
/* |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
82 |
* Read the configuration supplement file |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
83 |
*/ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
84 |
if (xf86readNextConfigFile(configIR) == NULL) { |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
85 |
fbc_errormsg("Error in configuration file, %s\n", |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
86 |
supplement_path); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
87 |
exit(FBC_EXIT_FAILURE); /* Just lost all config IR data */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
88 |
} |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
89 |
#if (0) /* This may or may not be necessary */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
90 |
if (euid != uid) { |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
91 |
(void) seteuid(euid); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
92 |
} |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
93 |
#endif /* This may or may not be necessary */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
94 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
95 |
return (FBC_SUCCESS); |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
96 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
97 |
} /* fbc_append_config() */ |
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
98 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
99 |
|
629ac4b133bc
7039328 Move SPARC Graphics utilities to X consolidation
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
100 |
/* End of fbc_append_config.c */ |