author | Alan Coopersmith <Alan.Coopersmith@Oracle.COM> |
Mon, 14 Mar 2011 15:37:30 -0700 | |
changeset 1088 | 1c99106ccbe0 |
parent 943 | 294f64612d23 |
child 1187 | c380a2754b65 |
permissions | -rw-r--r-- |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1 |
/* |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2 |
* Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
3 |
* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
4 |
* Permission is hereby granted, free of charge, to any person obtaining a |
919
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
5 |
* copy of this software and associated documentation files (the "Software"), |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
6 |
* to deal in the Software without restriction, including without limitation |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
7 |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
8 |
* and/or sell copies of the Software, and to permit persons to whom the |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
9 |
* Software is furnished to do so, subject to the following conditions: |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
10 |
* |
919
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
11 |
* The above copyright notice and this permission notice (including the next |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
12 |
* paragraph) shall be included in all copies or substantial portions of the |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
13 |
* Software. |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
14 |
* |
919
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
15 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
16 |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
17 |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
18 |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
19 |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
20 |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
425233ae7236
6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
907
diff
changeset
|
21 |
* DEALINGS IN THE SOFTWARE. |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
22 |
*/ |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
23 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
24 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
25 |
#include <stdio.h> |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
26 |
#include "auditwrite.h" |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
27 |
#include <bsm/libbsm.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
28 |
#include <bsm/audit_uevents.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
29 |
#include <sys/param.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
30 |
#include <sys/types.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
31 |
#include <sys/socket.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
32 |
#include <sys/wait.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
33 |
#include <ucred.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
34 |
#include <netinet/in.h> |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
35 |
#include <netdb.h> |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
36 |
#include <arpa/inet.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
37 |
#include <sys/tsol/tndb.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
38 |
#include <strings.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
39 |
#include <string.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
40 |
#include <pwd.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
41 |
#include <unistd.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
42 |
#include <sys/stat.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
43 |
#include <rpc/rpc.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
44 |
#include <zone.h> |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
45 |
|
98
c21b46ed1efd
6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
73
diff
changeset
|
46 |
#ifdef HAVE_DIX_CONFIG_H |
c21b46ed1efd
6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
73
diff
changeset
|
47 |
#include <dix-config.h> |
c21b46ed1efd
6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
73
diff
changeset
|
48 |
#endif |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
49 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
50 |
#include "misc.h" |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
51 |
#include "osdep.h" |
98
c21b46ed1efd
6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
73
diff
changeset
|
52 |
#include <X11/Xauth.h> |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
53 |
#include "tsol.h" |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
54 |
#include "inputstr.h" |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
55 |
#include "extnsionst.h" |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
56 |
#include "dixstruct.h" |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
57 |
#include "xace.h" |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
58 |
#include "xacestr.h" |
311
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
59 |
#ifdef PANORAMIX |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
60 |
#include "../Xext/panoramiXsrv.h" |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
61 |
#endif |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
62 |
#ifdef XCSECURITY |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
63 |
#include <X11/extensions/secur.h> |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
64 |
#include "../Xext/securitysrv.h" |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
65 |
#endif |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
66 |
#include "tsolpolicy.h" |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
67 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
68 |
#define BadCmapCookie 0 |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
69 |
#define Tsolextension 0x0080 /* Tsol extensions begin at 128 */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
70 |
#define MAX_SCREENS 3 /* screens allowed */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
71 |
#define EXTNSIZE 128 |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
72 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
73 |
#define SECURE_RPC_AUTH "SUN-DES-1" |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
74 |
#define SECURE_RPC_LEN 9 |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
75 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
76 |
static int ProcTsolDispatch(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
77 |
static int ProcSetPolyInstInfo(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
78 |
static int ProcSetPropLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
79 |
static int ProcSetPropUID(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
80 |
static int ProcSetResLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
81 |
static int ProcSetResUID(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
82 |
static int ProcGetClientAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
83 |
static int ProcGetClientLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
84 |
static int ProcGetPropAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
85 |
static int ProcGetResAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
86 |
static int ProcMakeTPWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
87 |
static int ProcMakeTrustedWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
88 |
static int ProcMakeUntrustedWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
89 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
90 |
static int SProcTsolDispatch(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
91 |
static int SProcSetPolyInstInfo(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
92 |
static int SProcSetPropLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
93 |
static int SProcSetPropUID(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
94 |
static int SProcSetResLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
95 |
static int SProcSetResUID(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
96 |
static int SProcGetClientAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
97 |
static int SProcGetClientLabel(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
98 |
static int SProcGetPropAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
99 |
static int SProcGetResAttributes(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
100 |
static int SProcMakeTPWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
101 |
static int SProcMakeTrustedWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
102 |
static int SProcMakeUntrustedWindow(ClientPtr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
103 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
104 |
static void TsolReset(ExtensionEntry *extension); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
105 |
static void BreakAllGrabs(ClientPtr client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
106 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
107 |
static unsigned char TsolReqCode = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
108 |
static int tsolEventBase = -1; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
109 |
static int ScreenStripeHeight[MAX_SCREENS] = {0, 0}; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
110 |
|
73
8877ee2f6c6d
6473751 [tjds] image capture in tjds is corrupt
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
64
diff
changeset
|
111 |
int tsolMultiLevel = TRUE; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
112 |
int tsol_mac_enabled; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
113 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
114 |
static int OwnerUIDint; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
115 |
static Selection *tsol_sel_agnt = NULL; /* entry in CurrentSelection to get seln */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
116 |
static Atom tsol_atom_sel_agnt = 0; /* selection agent atom created during init */ |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
117 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
118 |
/* |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
119 |
* Key to lookup devPrivate data in various structures |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
120 |
*/ |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
121 |
DevPrivateKeyRec tsolClientPrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
122 |
DevPrivateKeyRec tsolPixmapPrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
123 |
DevPrivateKeyRec tsolWindowPrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
124 |
DevPrivateKeyRec tsolPropertyPrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
125 |
DevPrivateKeyRec tsolSelectionPrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
126 |
DevPrivateKeyRec tsolDevicePrivateKeyRec; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
127 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
128 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
129 |
int (*TsolSavedProcVector[PROCVECTORSIZE])(ClientPtr client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
130 |
int (*TsolSavedSwappedProcVector[PROCVECTORSIZE])(ClientPtr client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
131 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
132 |
static SecurityHook tsolSecHook; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
133 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
134 |
static XID TsolCheckAuthorization (unsigned int name_length, |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
135 |
char *name, unsigned int data_length, |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
136 |
char *data, ClientPtr client, char **reason); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
137 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
138 |
static void TsolSetClientInfo(ClientPtr client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
139 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
140 |
/* XACE hook callbacks */ |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
141 |
static CALLBACK(TsolCheckExtensionAccess); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
142 |
static CALLBACK(TsolCheckPropertyAccess); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
143 |
static CALLBACK(TsolCheckResourceIDAccess); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
144 |
static CALLBACK(TsolCheckSendAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
145 |
static CALLBACK(TsolCheckReceiveAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
146 |
static CALLBACK(TsolCheckSelectionAccess); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
147 |
static CALLBACK(TsolProcessKeyboard); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
148 |
CALLBACK(TsolCheckDeviceAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
149 |
CALLBACK(TsolCheckServerAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
150 |
CALLBACK(TsolCheckClientAccess); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
151 |
|
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
152 |
/* other callbacks */ |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
153 |
static CALLBACK(TsolClientStateCallback); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
154 |
static CALLBACK(TsolSelectionCallback); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
155 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
156 |
extern int tsol_check_policy(TsolInfoPtr tsolinfo, TsolResPtr tsolres, |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
157 |
xpolicy_t flags, int reqcode); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
158 |
extern void TsolCheckDrawableAccess(CallbackListPtr *pcbl, pointer nulldata, |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
159 |
pointer calldata); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
160 |
extern void TsolCheckXIDAccess(CallbackListPtr *pcbl, pointer nulldata, |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
161 |
pointer calldata); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
162 |
extern Bool client_has_privilege(TsolInfoPtr tsolinfo, priv_set_t *priv); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
163 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
164 |
extern priv_set_t *pset_win_mac_write; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
165 |
extern priv_set_t *pset_win_dac_write; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
166 |
extern priv_set_t *pset_win_config; |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
167 |
|
877
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
168 |
extern RESTYPE RREventType; |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
169 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
170 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
171 |
* Initialize the extension. Main entry point for this loadable |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
172 |
* module. |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
173 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
174 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
175 |
_X_EXPORT void |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
176 |
TsolExtensionInit(void) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
177 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
178 |
ExtensionEntry *extEntry; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
179 |
int i; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
180 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
181 |
/* sleep(20); */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
182 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
183 |
/* MAC/Label support is available only if labeld svc is enabled */ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
184 |
if (is_system_labeled()) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
185 |
tsol_mac_enabled = TRUE; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
186 |
} else { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
187 |
/* DAC support can be added in future */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
188 |
tsol_mac_enabled = FALSE; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
189 |
return; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
190 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
191 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
192 |
tsolMultiLevel = TRUE; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
193 |
(void) setpflags(PRIV_AWARE, 1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
194 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
195 |
init_xtsol(); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
196 |
init_win_privsets(); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
197 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
198 |
extEntry = AddExtension(TSOLNAME, TSOL_NUM_EVENTS, TSOL_NUM_ERRORS, |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
199 |
ProcTsolDispatch, SProcTsolDispatch, TsolReset, |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
200 |
StandardMinorOpcode); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
201 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
202 |
if (extEntry == NULL) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
203 |
ErrorF("TsolExtensionInit: AddExtension failed for X Trusted Extensions\n"); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
204 |
return; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
205 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
206 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
207 |
TsolReqCode = (unsigned char) extEntry->base; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
208 |
tsolEventBase = extEntry->eventBase; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
209 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
210 |
if (!AddCallback(&ClientStateCallback, TsolClientStateCallback, NULL)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
211 |
return; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
212 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
213 |
if (!AddCallback(&SelectionCallback, TsolSelectionCallback, NULL)) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
214 |
return; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
215 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
216 |
/* Allocate storage in devPrivates */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
217 |
if (!dixRegisterPrivateKey(tsolClientPrivateKey, PRIVATE_CLIENT, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
218 |
sizeof (TsolInfoRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
219 |
ErrorF("TsolExtensionInit: Cannot allocate client private.\n"); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
220 |
return; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
221 |
} |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
222 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
223 |
if (!dixRegisterPrivateKey(tsolPixmapPrivateKey, PRIVATE_PIXMAP, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
224 |
sizeof (TsolResRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
225 |
ErrorF("TsolExtensionInit: Cannot allocate pixmap private.\n"); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
226 |
return; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
227 |
} |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
228 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
229 |
if (!dixRegisterPrivateKey(tsolWindowPrivateKey, PRIVATE_WINDOW, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
230 |
sizeof (TsolResRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
231 |
ErrorF("TsolExtensionInit: Cannot allocate window private.\n"); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
232 |
return; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
233 |
} |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
234 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
235 |
if (!dixRegisterPrivateKey(tsolPropertyPrivateKey, PRIVATE_PROPERTY, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
236 |
sizeof (TsolResRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
237 |
ErrorF("TsolExtensionInit: Cannot allocate property private.\n"); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
238 |
return; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
239 |
} |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
240 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
241 |
if (!dixRegisterPrivateKey(tsolSelectionPrivateKey, PRIVATE_SELECTION, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
242 |
sizeof (TsolResRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
243 |
ErrorF("TsolExtensionInit: Cannot allocate selection private.\n"); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
244 |
return; |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
245 |
} |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
246 |
|
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
247 |
if (!dixRegisterPrivateKey(tsolDevicePrivateKey, PRIVATE_DEVICE, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
248 |
sizeof (HotKeyRec))) { |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
249 |
ErrorF("TsolExtensionInit: Cannot allocate device private.\n"); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
250 |
return; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
251 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
252 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
253 |
/* Initialize the client info for server itself */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
254 |
if (serverClient) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
255 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(serverClient); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
256 |
if (tsolinfo->sl == NULL) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
257 |
tsolinfo->sl = (bslabel_t *)lookupSL_low(); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
258 |
tsolinfo->uid = 0; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
259 |
tsolinfo->pid = getpid(); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
260 |
snprintf(tsolinfo->pname, MAXNAME, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
261 |
"client id %d (pid %d)", |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
262 |
serverClient->index, tsolinfo->pid); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
263 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
264 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
265 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
266 |
LoadTsolConfig(); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
267 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
268 |
MakeTSOLAtoms(); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
269 |
UpdateTsolNode(0, NULL); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
270 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
271 |
tsol_atom_sel_agnt = MakeAtom("_TSOL_SEL_AGNT", 14, 1); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
272 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
273 |
/* Initialize security hooks */ |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
274 |
tsolSecHook.CheckAuthorization = TsolCheckAuthorization; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
275 |
pSecHook = &tsolSecHook; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
276 |
|
712
771b9ca1c8f6
6844065 Some extensions(XKEYBOARD) not visible to labeled zones
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
705
diff
changeset
|
277 |
XaceRegisterCallback(XACE_EXT_DISPATCH, TsolCheckExtensionAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
278 |
XaceRegisterCallback(XACE_RESOURCE_ACCESS, TsolCheckResourceIDAccess, NULL); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
279 |
XaceRegisterCallback(XACE_PROPERTY_ACCESS, TsolCheckPropertyAccess, NULL); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
280 |
XaceRegisterCallback(XACE_SEND_ACCESS, TsolCheckSendAccess, NULL); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
281 |
XaceRegisterCallback(XACE_RECEIVE_ACCESS, TsolCheckReceiveAccess, NULL); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
282 |
XaceRegisterCallback(XACE_EXT_ACCESS, TsolCheckExtensionAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
283 |
XaceRegisterCallback(XACE_DEVICE_ACCESS, TsolCheckDeviceAccess, NULL); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
284 |
XaceRegisterCallback(XACE_SCREEN_ACCESS, TsolCheckDeviceAccess, NULL); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
285 |
XaceRegisterCallback(XACE_SCREENSAVER_ACCESS, TsolCheckDeviceAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
286 |
XaceRegisterCallback(XACE_SELECTION_ACCESS, TsolCheckSelectionAccess, NULL); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
287 |
XaceRegisterCallback(XACE_SERVER_ACCESS, TsolCheckServerAccess, NULL); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
288 |
XaceRegisterCallback(XACE_CLIENT_ACCESS, TsolCheckClientAccess, NULL); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
289 |
XaceRegisterCallback(XACE_KEY_AVAIL, TsolProcessKeyboard, NULL); |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
290 |
XaceRegisterCallback(XACE_AUDIT_BEGIN, TsolAuditStart, NULL); |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
291 |
XaceRegisterCallback(XACE_AUDIT_END, TsolAuditEnd, NULL); |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
292 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
293 |
/* Save original Proc vectors */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
294 |
for (i = 0; i < PROCVECTORSIZE; i++) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
295 |
TsolSavedProcVector[i] = ProcVector[i]; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
296 |
TsolSavedSwappedProcVector[i] = SwappedProcVector[i]; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
297 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
298 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
299 |
ProcVector[X_InternAtom] = ProcTsolInternAtom; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
300 |
ProcVector[X_GetAtomName] = ProcTsolGetAtomName; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
301 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
302 |
ProcVector[X_CreateWindow] = ProcTsolCreateWindow; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
303 |
ProcVector[X_ChangeWindowAttributes] = ProcTsolChangeWindowAttributes; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
304 |
ProcVector[X_ConfigureWindow] = ProcTsolConfigureWindow; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
305 |
ProcVector[X_CirculateWindow] = ProcTsolCirculateWindow; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
306 |
ProcVector[X_ReparentWindow] = ProcTsolReparentWindow; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
307 |
ProcVector[X_GrabServer] = ProcTsolGrabServer; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
308 |
ProcVector[X_UngrabServer] = ProcTsolUngrabServer; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
309 |
ProcVector[X_GetImage] = ProcTsolGetImage; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
310 |
ProcVector[X_QueryTree] = ProcTsolQueryTree; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
311 |
ProcVector[X_QueryPointer] = ProcTsolQueryPointer; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
312 |
ProcVector[X_GetGeometry] = ProcTsolGetGeometry; |
64
c03273ff2fb9
6426302 [tjds] capturing screen using sdtimage crashes Xserver
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
36
diff
changeset
|
313 |
ProcVector[X_CopyArea] = ProcTsolCopyArea; |
c03273ff2fb9
6426302 [tjds] capturing screen using sdtimage crashes Xserver
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
36
diff
changeset
|
314 |
ProcVector[X_CopyPlane] = ProcTsolCopyPlane; |
c03273ff2fb9
6426302 [tjds] capturing screen using sdtimage crashes Xserver
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
36
diff
changeset
|
315 |
ProcVector[X_PolySegment] = ProcTsolPolySegment; |
c03273ff2fb9
6426302 [tjds] capturing screen using sdtimage crashes Xserver
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
36
diff
changeset
|
316 |
ProcVector[X_PolyRectangle] = ProcTsolPolyRectangle; |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
317 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
318 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
319 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
320 |
static CALLBACK( |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
321 |
TsolCheckResourceIDAccess) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
322 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
323 |
XaceResourceAccessRec *rec = calldata; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
324 |
RESTYPE rtype = rec->rtype; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
325 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
326 |
switch (rtype) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
327 |
case RT_WINDOW: |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
328 |
case RT_PIXMAP: |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
329 |
/* Drawables policy */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
330 |
TsolCheckDrawableAccess(pcbl, nulldata, calldata); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
331 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
332 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
333 |
case RT_GC: |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
334 |
case RT_CURSOR: |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
335 |
case RT_FONT: |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
336 |
TsolCheckXIDAccess(pcbl, nulldata, calldata); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
337 |
break; |
877
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
338 |
default: |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
339 |
/* |
877
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
340 |
* Handle other resource types. |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
341 |
* In RANDR extension, usual window policy is |
877
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
342 |
* enforced before checking for RREventType. |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
343 |
*/ |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
344 |
if (rtype == RREventType) { |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
345 |
rec->status = Success; |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
346 |
} |
6c65389d1a18
6908857 cannot start labeled workspaces
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
851
diff
changeset
|
347 |
break; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
348 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
349 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
350 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
351 |
static |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
352 |
CALLBACK(TsolSelectionCallback) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
353 |
{ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
354 |
SelectionInfoRec *pselinfo = (SelectionInfoRec *)calldata; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
355 |
Selection *pSel = pselinfo->selection; |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
356 |
TsolResPtr tsolseln = TsolSelectionPrivate(pSel); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
357 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
358 |
switch (pselinfo->kind) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
359 |
case SelectionClientClose: |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
360 |
if (tsol_sel_agnt && pSel->selection == tsol_sel_agnt->selection) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
361 |
tsol_sel_agnt = NULL; /* selection manager died. */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
362 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
363 |
/* fall through to reset the SL */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
364 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
365 |
case SelectionWindowDestroy: |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
366 |
tsolseln->sl = NULL; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
367 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
368 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
369 |
default: |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
370 |
/* All others handled in SelectionAccess handler */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
371 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
372 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
373 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
374 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
375 |
static |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
376 |
CALLBACK(TsolClientStateCallback) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
377 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
378 |
NewClientInfoRec *pci = (NewClientInfoRec *)calldata; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
379 |
ClientPtr client = pci->client; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
380 |
TsolInfoPtr tsolinfo = TsolClientPrivate(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
381 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
382 |
switch (client->clientState) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
383 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
384 |
case ClientStateInitial: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
385 |
/* Got a new connection */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
386 |
TsolSetClientInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
387 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
388 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
389 |
case ClientStateRunning: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
390 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
391 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
392 |
case ClientStateRetained: /* client disconnected */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
393 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
394 |
case ClientStateGone: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
395 |
if (tpwin && wClient(tpwin) == client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
396 |
tpwin = NULL; /* reset tpwin */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
397 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
398 |
if (tsolinfo != NULL && tsolinfo->privs != NULL) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
399 |
priv_freeset(tsolinfo->privs); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
400 |
} |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
401 |
/* Audit disconnect */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
402 |
if (system_audit_on && (au_preselect(AUE_ClientDisconnect, &(tsolinfo->amask), |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
403 |
AU_PRS_BOTH, AU_PRS_USECACHE) == 1)) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
404 |
auditwrite(AW_PRESELECT, &(tsolinfo->amask),AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
405 |
auditwrite(AW_EVENTNUM, AUE_ClientDisconnect, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
406 |
AW_XCLIENT, client->index, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
407 |
AW_SLABEL, tsolinfo->sl, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
408 |
AW_RETURN, 0, 0, AW_WRITE, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
409 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
410 |
tsolinfo->flags &= ~TSOL_DOXAUDIT; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
411 |
tsolinfo->flags &= ~TSOL_AUDITEVENT; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
412 |
auditwrite(AW_FLUSH, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
413 |
auditwrite(AW_DISCARDRD, tsolinfo->asaverd, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
414 |
auditwrite(AW_NOPRESELECT, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
415 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
416 |
break; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
417 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
418 |
default: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
419 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
420 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
421 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
422 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
423 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
424 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
425 |
static void |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
426 |
TsolReset(ExtensionEntry *extension) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
427 |
{ |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
428 |
free_win_privsets(); |
712
771b9ca1c8f6
6844065 Some extensions(XKEYBOARD) not visible to labeled zones
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
705
diff
changeset
|
429 |
XaceDeleteCallback(XACE_EXT_DISPATCH, TsolCheckExtensionAccess, NULL); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
430 |
XaceDeleteCallback(XACE_RESOURCE_ACCESS, TsolCheckResourceIDAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
431 |
XaceDeleteCallback(XACE_PROPERTY_ACCESS, TsolCheckPropertyAccess, NULL); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
432 |
XaceDeleteCallback(XACE_SEND_ACCESS, TsolCheckSendAccess, NULL); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
433 |
XaceDeleteCallback(XACE_RECEIVE_ACCESS, TsolCheckReceiveAccess, NULL); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
434 |
XaceDeleteCallback(XACE_EXT_ACCESS, TsolCheckExtensionAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
435 |
XaceDeleteCallback(XACE_DEVICE_ACCESS, TsolCheckDeviceAccess, NULL); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
436 |
XaceDeleteCallback(XACE_SCREEN_ACCESS, TsolCheckDeviceAccess, NULL); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
437 |
XaceDeleteCallback(XACE_SCREENSAVER_ACCESS, TsolCheckDeviceAccess, NULL); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
438 |
XaceDeleteCallback(XACE_SELECTION_ACCESS, TsolCheckSelectionAccess, NULL); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
439 |
XaceDeleteCallback(XACE_SERVER_ACCESS, TsolCheckServerAccess, NULL); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
440 |
XaceDeleteCallback(XACE_CLIENT_ACCESS, TsolCheckClientAccess, NULL); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
441 |
XaceDeleteCallback(XACE_KEY_AVAIL, TsolProcessKeyboard, NULL); |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
442 |
XaceDeleteCallback(XACE_AUDIT_BEGIN, TsolAuditStart, NULL); |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
443 |
XaceDeleteCallback(XACE_AUDIT_END, TsolAuditEnd, NULL); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
444 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
445 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
446 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
447 |
* Dispatch routine |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
448 |
* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
449 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
450 |
static int |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
451 |
ProcTsolDispatch(register ClientPtr client) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
452 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
453 |
int retval; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
454 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
455 |
REQUEST(xReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
456 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
457 |
switch (stuff->data) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
458 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
459 |
case X_SetPolyInstInfo: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
460 |
retval = ProcSetPolyInstInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
461 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
462 |
case X_SetPropLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
463 |
retval = ProcSetPropLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
464 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
465 |
case X_SetPropUID: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
466 |
retval = ProcSetPropUID(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
467 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
468 |
case X_SetResLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
469 |
retval = ProcSetResLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
470 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
471 |
case X_SetResUID: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
472 |
retval = ProcSetResUID(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
473 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
474 |
case X_GetClientAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
475 |
retval = ProcGetClientAttributes(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
476 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
477 |
case X_GetClientLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
478 |
retval = ProcGetClientLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
479 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
480 |
case X_GetPropAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
481 |
retval = ProcGetPropAttributes(client); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
482 |
break; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
483 |
case X_GetResAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
484 |
retval = ProcGetResAttributes(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
485 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
486 |
case X_MakeTPWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
487 |
retval = ProcMakeTPWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
488 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
489 |
case X_MakeTrustedWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
490 |
retval = ProcMakeTrustedWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
491 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
492 |
case X_MakeUntrustedWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
493 |
retval = ProcMakeUntrustedWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
494 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
495 |
default: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
496 |
SendErrorToClient(client, TsolReqCode, stuff->data, 0, BadRequest); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
497 |
retval = BadRequest; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
498 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
499 |
return (retval); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
500 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
501 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
502 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
503 |
static int |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
504 |
SProcTsolDispatch(register ClientPtr client) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
505 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
506 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
507 |
int retval; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
508 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
509 |
REQUEST(xReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
510 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
511 |
swaps(&stuff->length, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
512 |
switch (stuff->data) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
513 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
514 |
case X_SetPolyInstInfo: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
515 |
retval = SProcSetPolyInstInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
516 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
517 |
case X_SetPropLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
518 |
retval = SProcSetPropLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
519 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
520 |
case X_SetPropUID: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
521 |
retval = SProcSetPropUID(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
522 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
523 |
case X_SetResLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
524 |
retval = SProcSetResLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
525 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
526 |
case X_SetResUID: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
527 |
retval = SProcSetResUID(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
528 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
529 |
case X_GetClientAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
530 |
retval = SProcGetClientAttributes(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
531 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
532 |
case X_GetClientLabel: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
533 |
retval = SProcGetClientLabel(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
534 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
535 |
case X_GetPropAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
536 |
retval = SProcGetPropAttributes(client); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
537 |
break; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
538 |
case X_GetResAttributes: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
539 |
retval = SProcGetResAttributes(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
540 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
541 |
case X_MakeTPWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
542 |
retval = SProcMakeTPWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
543 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
544 |
case X_MakeTrustedWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
545 |
retval = SProcMakeTrustedWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
546 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
547 |
case X_MakeUntrustedWindow: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
548 |
retval = SProcMakeUntrustedWindow(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
549 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
550 |
default: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
551 |
SendErrorToClient(client, TsolReqCode, stuff->data, 0, BadRequest); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
552 |
retval = BadRequest; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
553 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
554 |
return (retval); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
555 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
556 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
557 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
558 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
559 |
* Individual routines |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
560 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
561 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
562 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
563 |
SProcSetPolyInstInfo(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
564 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
565 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
566 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
567 |
REQUEST(xSetPolyInstInfoReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
568 |
swapl(&stuff->uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
569 |
swapl(&stuff->enabled, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
570 |
swaps(&stuff->sllength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
571 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
572 |
return (ProcSetPolyInstInfo(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
573 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
574 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
575 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
576 |
SProcSetPropLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
577 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
578 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
579 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
580 |
REQUEST(xSetPropLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
581 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
582 |
swapl(&stuff->atom, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
583 |
swaps(&stuff->labelType, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
584 |
swaps(&stuff->sllength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
585 |
swaps(&stuff->illength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
586 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
587 |
return (ProcSetPropLabel(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
588 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
589 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
590 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
591 |
SProcSetPropUID(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
592 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
593 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
594 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
595 |
REQUEST(xSetPropUIDReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
596 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
597 |
swapl(&stuff->atom, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
598 |
swapl(&stuff->uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
599 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
600 |
return (ProcSetPropUID(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
601 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
602 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
603 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
604 |
SProcSetResLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
605 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
606 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
607 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
608 |
REQUEST(xSetResLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
609 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
610 |
swaps(&stuff->resourceType, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
611 |
swaps(&stuff->labelType, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
612 |
swaps(&stuff->sllength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
613 |
swaps(&stuff->illength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
614 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
615 |
return (ProcSetResLabel(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
616 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
617 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
618 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
619 |
SProcSetResUID(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
620 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
621 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
622 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
623 |
REQUEST(xSetResUIDReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
624 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
625 |
swaps(&stuff->resourceType, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
626 |
swapl(&stuff->uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
627 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
628 |
return (ProcSetResUID(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
629 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
630 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
631 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
632 |
SProcGetClientAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
633 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
634 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
635 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
636 |
REQUEST(xGetClientAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
637 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
638 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
639 |
return (ProcGetClientAttributes(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
640 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
641 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
642 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
643 |
SProcGetClientLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
644 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
645 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
646 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
647 |
REQUEST(xGetClientLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
648 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
649 |
swaps(&stuff->mask, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
650 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
651 |
return (ProcGetClientLabel(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
652 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
653 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
654 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
655 |
SProcGetPropAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
656 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
657 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
658 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
659 |
REQUEST(xGetPropAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
660 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
661 |
swapl(&stuff->atom, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
662 |
swaps(&stuff->mask, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
663 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
664 |
return (ProcGetPropAttributes(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
665 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
666 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
667 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
668 |
SProcGetResAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
669 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
670 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
671 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
672 |
REQUEST(xGetResAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
673 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
674 |
swaps(&stuff->resourceType, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
675 |
swaps(&stuff->mask, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
676 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
677 |
return (ProcGetResAttributes(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
678 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
679 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
680 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
681 |
SProcMakeTPWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
682 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
683 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
684 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
685 |
REQUEST(xMakeTPWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
686 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
687 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
688 |
return (ProcMakeTPWindow(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
689 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
690 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
691 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
692 |
SProcMakeTrustedWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
693 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
694 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
695 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
696 |
REQUEST(xMakeTrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
697 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
698 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
699 |
return (ProcMakeTrustedWindow(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
700 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
701 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
702 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
703 |
SProcMakeUntrustedWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
704 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
705 |
int n; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
706 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
707 |
REQUEST(xMakeUntrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
708 |
swapl(&stuff->id, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
709 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
710 |
return (ProcMakeUntrustedWindow(client)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
711 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
712 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
713 |
/* |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
714 |
* Set PolyInstantiation Info. |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
715 |
* Normally a get(prop) will |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
716 |
* get the prop. that has match sl, uid of the client. Setting |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
717 |
* enabled to true will get only the prop. corresponding to |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
718 |
* sl, uid specified instead of that of client. This is used |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
719 |
* by dtwm/dtfile in special motif lib. |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
720 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
721 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
722 |
ProcSetPolyInstInfo(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
723 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
724 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
725 |
bslabel_t *sl; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
726 |
extern priv_set_t *pset_win_mac_write; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
727 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
728 |
REQUEST(xSetPolyInstInfoReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
729 |
REQUEST_AT_LEAST_SIZE(xSetPolyInstInfoReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
730 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
731 |
/* Requires win_mac_write privilege */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
732 |
if (!client_has_privilege(tsolinfo, pset_win_mac_write)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
733 |
return (BadAccess); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
734 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
735 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
736 |
sl = (bslabel_t *)(stuff + 1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
737 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
738 |
tsolpolyinstinfo.enabled = stuff->enabled; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
739 |
tsolpolyinstinfo.uid = (uid_t) stuff->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
740 |
tsolpolyinstinfo.sl = lookupSL(sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
741 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
742 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
743 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
744 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
745 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
746 |
ProcSetPropLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
747 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
748 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
749 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
750 |
WindowPtr pWin; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
751 |
TsolResPtr tsolprop; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
752 |
PropertyPtr pProp; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
753 |
int rc; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
754 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
755 |
REQUEST(xSetPropLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
756 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
757 |
REQUEST_AT_LEAST_SIZE(xSetPropLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
758 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
759 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
760 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
761 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
762 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
763 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
764 |
if (!pWin) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
765 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
766 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
767 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
768 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
769 |
if (!ValidAtom(stuff->atom)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
770 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
771 |
client->errorValue = stuff->atom; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
772 |
return (BadAtom); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
773 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
774 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
775 |
/* first see if property already exists */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
776 |
pProp = wUserProps (pWin); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
777 |
while (pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
778 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
779 |
if (pProp->propertyName == stuff->atom) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
780 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
781 |
pProp = pProp->next; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
782 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
783 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
784 |
if (!pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
785 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
786 |
/* property does not exist */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
787 |
client->errorValue = stuff->atom; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
788 |
return (BadAtom); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
789 |
} |
168
7e5ba43e5235
6446010 Xtsol.h does not include X11/Xlib.h to define Bool
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
98
diff
changeset
|
790 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
791 |
/* Requires win_mac_write privilege */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
792 |
if (!client_has_privilege(tsolinfo, pset_win_mac_write)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
793 |
return (BadAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
794 |
} |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
795 |
|
168
7e5ba43e5235
6446010 Xtsol.h does not include X11/Xlib.h to define Bool
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
98
diff
changeset
|
796 |
/* Initialize property created internally by server */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
797 |
tsolprop = TsolPropertyPrivate(pProp); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
798 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
799 |
sl = (bslabel_t *)(stuff + 1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
800 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
801 |
if (!blequal(tsolprop->sl, sl)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
802 |
tsolprop->sl = lookupSL(sl); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
803 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
804 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
805 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
806 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
807 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
808 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
809 |
ProcSetPropUID(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
810 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
811 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
812 |
WindowPtr pWin; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
813 |
TsolResPtr tsolprop; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
814 |
PropertyPtr pProp; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
815 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
816 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
817 |
REQUEST(xSetPropUIDReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
818 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
819 |
REQUEST_SIZE_MATCH(xSetPropUIDReq); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
820 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
821 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
822 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
823 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
824 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
825 |
if (!pWin) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
826 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
827 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
828 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
829 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
830 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
831 |
if (!ValidAtom(stuff->atom)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
832 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
833 |
client->errorValue = stuff->atom; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
834 |
return (BadAtom); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
835 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
836 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
837 |
/* first see if property already exists */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
838 |
pProp = wUserProps (pWin); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
839 |
while (pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
840 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
841 |
if (pProp->propertyName == stuff->atom) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
842 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
843 |
pProp = pProp->next; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
844 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
845 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
846 |
if (!pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
847 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
848 |
/* property does not exist */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
849 |
client->errorValue = stuff->atom; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
850 |
return (BadAtom); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
851 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
852 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
853 |
/* Requires win_mac_write privilege */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
854 |
if (!client_has_privilege(tsolinfo, pset_win_mac_write)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
855 |
return (BadAccess); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
856 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
857 |
|
168
7e5ba43e5235
6446010 Xtsol.h does not include X11/Xlib.h to define Bool
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
98
diff
changeset
|
858 |
/* Initialize property created internally by server */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
859 |
tsolprop = TsolPropertyPrivate(pProp); |
168
7e5ba43e5235
6446010 Xtsol.h does not include X11/Xlib.h to define Bool
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
98
diff
changeset
|
860 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
861 |
tsolprop->uid = stuff->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
862 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
863 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
864 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
865 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
866 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
867 |
ProcSetResLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
868 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
869 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
870 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
871 |
PixmapPtr pMap; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
872 |
WindowPtr pWin; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
873 |
xEvent message; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
874 |
TsolResPtr tsolres; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
875 |
int rc; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
876 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
877 |
REQUEST(xSetResLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
878 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
879 |
REQUEST_AT_LEAST_SIZE(xSetResLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
880 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
881 |
/* Requires win_mac_write privilege */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
882 |
if (!client_has_privilege(tsolinfo, pset_win_mac_write)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
883 |
return (BadAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
884 |
} |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
885 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
886 |
sl = (bslabel_t *)(stuff + 1); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
887 |
switch (stuff->resourceType) { |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
888 |
case SESSIONHI: /* set server session HI */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
889 |
memcpy(&SessionHI, sl, SL_SIZE); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
890 |
return (client->noClientException); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
891 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
892 |
case SESSIONLO: /* set server session LO */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
893 |
memcpy(&SessionLO, sl, SL_SIZE); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
894 |
return (client->noClientException); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
895 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
896 |
case IsWindow: |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
897 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
898 |
if (rc != Success) |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
899 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
900 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
901 |
if (pWin) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
902 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
903 |
tsolres = TsolWindowPrivate(pWin); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
904 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
905 |
else |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
906 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
907 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
908 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
909 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
910 |
break; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
911 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
912 |
case IsPixmap: |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
913 |
rc = dixLookupDrawable((DrawablePtr *)&pMap, stuff->id, client, |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
914 |
M_DRAWABLE_PIXMAP, DixWriteAccess); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
915 |
if (rc != Success) |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
916 |
return rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
917 |
if (pMap) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
918 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
919 |
tsolres = TsolPixmapPrivate(pMap); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
920 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
921 |
else |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
922 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
923 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
924 |
return (BadPixmap); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
925 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
926 |
break; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
927 |
default: |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
928 |
client->errorValue = stuff->resourceType; |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
929 |
return (BadValue); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
930 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
931 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
932 |
if (!blequal(tsolres->sl, sl)) { |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
933 |
tsolres->sl = lookupSL(sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
934 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
935 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
936 |
/* generate the notify event for windows */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
937 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
938 |
if (stuff->resourceType == IsWindow) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
939 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
940 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
941 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
942 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
943 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
944 |
message.u.u.type = ClientMessage; /* 33 */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
945 |
message.u.u.detail = 32; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
946 |
message.u.clientMessage.window = RootOf(pWin); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
947 |
message.u.clientMessage.u.l.type = |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
948 |
MakeAtom("_TSOL_CMWLABEL_CHANGE", 21, 1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
949 |
message.u.clientMessage.u.l.longs0 = RootOfClient(pWin); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
950 |
message.u.clientMessage.u.l.longs1 = stuff->id; |
705
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
951 |
DeliverEventsToWindow(PickPointer(client), pWin, &message, 1, |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
952 |
SubstructureRedirectMask, NullGrab); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
953 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
954 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
955 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
956 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
957 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
958 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
959 |
ProcSetResUID(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
960 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
961 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
962 |
int ScreenNumber; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
963 |
PixmapPtr pMap; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
964 |
WindowPtr pWin; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
965 |
TsolResPtr tsolres; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
966 |
int rc; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
967 |
extern priv_set_t *pset_win_dac_write; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
968 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
969 |
REQUEST(xSetResUIDReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
970 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
971 |
REQUEST_SIZE_MATCH(xSetResUIDReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
972 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
973 |
switch (stuff->resourceType) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
974 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
975 |
case STRIPEHEIGHT: |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
976 |
if (!HasTrustedPath(tsolinfo)) |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
977 |
return (BadAccess); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
978 |
StripeHeight = stuff->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
979 |
ScreenNumber = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
980 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
981 |
/* set Screen Stripe Size */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
982 |
DoScreenStripeHeight(ScreenNumber); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
983 |
ScreenStripeHeight [ScreenNumber] = StripeHeight; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
984 |
return (client->noClientException); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
985 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
986 |
case RES_OUID: |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
987 |
if (!HasTrustedPath(tsolinfo)) |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
988 |
return (BadAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
989 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
990 |
OwnerUID = stuff->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
991 |
OwnerUIDint = OwnerUID; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
992 |
AddUID(&OwnerUIDint); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
993 |
return (client->noClientException); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
994 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
995 |
case IsWindow: |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
996 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
997 |
if (rc != Success) |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
998 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
999 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1000 |
if (pWin) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1001 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1002 |
tsolres = TsolWindowPrivate(pWin); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1003 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1004 |
else |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1005 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1006 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1007 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1008 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1009 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1010 |
case IsPixmap: |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1011 |
rc = dixLookupDrawable((DrawablePtr *)&pMap, stuff->id, client, |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1012 |
M_DRAWABLE_PIXMAP, DixWriteAccess); |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1013 |
if (rc != Success) |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1014 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1015 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1016 |
if (pMap) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1017 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1018 |
tsolres = TsolPixmapPrivate(pMap); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1019 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1020 |
else |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1021 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1022 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1023 |
return (BadPixmap); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1024 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1025 |
break; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1026 |
default: |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1027 |
return (BadValue); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1028 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1029 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1030 |
/* Requires win_dac_write privilege */ |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1031 |
if (!client_has_privilege(tsolinfo, pset_win_dac_write)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1032 |
return (BadAccess); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1033 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1034 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1035 |
tsolres->uid = stuff->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1036 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1037 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1038 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1039 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1040 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1041 |
ProcGetClientAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1042 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1043 |
int n; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1044 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1045 |
ClientPtr res_client; /* resource owner client */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1046 |
TsolInfoPtr tsolinfo, res_tsolinfo; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1047 |
WindowPtr pWin; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1048 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1049 |
xGetClientAttributesReply rep; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1050 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1051 |
REQUEST(xGetClientAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1052 |
REQUEST_SIZE_MATCH(xGetClientAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1053 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1054 |
/* Valid window check */ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1055 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1056 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1057 |
return rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1058 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1059 |
if (!(res_client = clients[CLIENT_ID(stuff->id)])) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1060 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1061 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1062 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1063 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1064 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1065 |
tsolinfo = GetClientTsolInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1066 |
res_tsolinfo = GetClientTsolInfo(res_client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1067 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1068 |
/* Transfer the client info to reply rec */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1069 |
rep.type = X_Reply; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1070 |
rep.sequenceNumber = client->sequence; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1071 |
rep.trustflag = (res_tsolinfo->forced_trust == 1 |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1072 |
|| res_tsolinfo->trusted_path) ? (BYTE)1 : (BYTE)0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1073 |
rep.uid = (CARD32) res_tsolinfo->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1074 |
rep.pid = (CARD32) res_tsolinfo->pid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1075 |
rep.gid = (CARD32) res_tsolinfo->gid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1076 |
rep.auditid = (CARD32) res_tsolinfo->auid; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1077 |
rep.sessionid = (CARD32) res_tsolinfo->asid; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1078 |
rep.iaddr = (CARD32) res_tsolinfo->iaddr; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1079 |
rep.length = (CARD32) 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1080 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1081 |
if (client->swapped) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1082 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1083 |
swaps(&rep.sequenceNumber, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1084 |
swapl(&rep.length, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1085 |
swapl(&rep.uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1086 |
swapl(&rep.pid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1087 |
swapl(&rep.gid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1088 |
swapl(&rep.auditid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1089 |
swapl(&rep.sessionid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1090 |
swapl(&rep.iaddr, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1091 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1092 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1093 |
WriteToClient(client, sizeof(xGetClientAttributesReply), (char *)&rep); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1094 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1095 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1096 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1097 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1098 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1099 |
ProcGetClientLabel(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1100 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1101 |
int n; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1102 |
int reply_length = 0; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1103 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1104 |
Bool write_to_client = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1105 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1106 |
ClientPtr res_client; /* resource owner client */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1107 |
TsolInfoPtr tsolinfo, res_tsolinfo; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1108 |
WindowPtr pWin; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1109 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1110 |
xGenericReply rep; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1111 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1112 |
REQUEST(xGetClientLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1113 |
REQUEST_SIZE_MATCH(xGetClientLabelReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1114 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1115 |
/* Valid window check */ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1116 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1117 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1118 |
return rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1119 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1120 |
if (!(res_client = clients[CLIENT_ID(stuff->id)])) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1121 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1122 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1123 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1124 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1125 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1126 |
tsolinfo = GetClientTsolInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1127 |
res_tsolinfo = GetClientTsolInfo(res_client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1128 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1129 |
/* Transfer the client info to reply rec */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1130 |
rep.type = X_Reply; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1131 |
rep.sequenceNumber = client->sequence; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1132 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1133 |
/* allocate temp storage for labels */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1134 |
sl = malloc(SL_SIZE); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1135 |
rep.data00 = rep.data01 = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1136 |
if (sl == NULL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1137 |
return (BadAlloc); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1138 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1139 |
/* fill the fields as per request mask */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1140 |
if (stuff->mask & RES_SL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1141 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1142 |
memcpy(sl, res_tsolinfo->sl, SL_SIZE); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1143 |
rep.data00 = SL_SIZE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1144 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1145 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1146 |
rep.length = (CARD32)(rep.data00)/4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1147 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1148 |
if (rep.length > 0) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1149 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1150 |
reply_length = rep.length*4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1151 |
write_to_client = 1; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1152 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1153 |
if (client->swapped) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1154 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1155 |
swaps(&rep.sequenceNumber, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1156 |
swapl(&rep.length, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1157 |
swapl(&rep.data00, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1158 |
swapl(&rep.data01, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1159 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1160 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1161 |
WriteToClient(client, sizeof(xGenericReply), (char *)&rep); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1162 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1163 |
if (write_to_client == 1) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1164 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1165 |
WriteToClient(client, reply_length, (char *)sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1166 |
} |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1167 |
free(sl); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1168 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1169 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1170 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1171 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1172 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1173 |
ProcGetPropAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1174 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1175 |
int n; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1176 |
int reply_length = 0; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1177 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1178 |
Bool write_to_client = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1179 |
PropertyPtr pProp; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1180 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1181 |
WindowPtr pWin; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1182 |
TsolResPtr tsolprop; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1183 |
TsolResPtr tsolres; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1184 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1185 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1186 |
xGetPropAttributesReply rep; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1187 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1188 |
REQUEST(xGetPropAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1189 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1190 |
REQUEST_SIZE_MATCH(xGetPropAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1191 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1192 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1193 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1194 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1195 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1196 |
if (!ValidAtom(stuff->atom)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1197 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1198 |
client->errorValue = stuff->atom; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1199 |
return (BadAtom); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1200 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1201 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1202 |
/* first see if property already exists */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1203 |
pProp = wUserProps (pWin); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1204 |
while (pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1205 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1206 |
tsolprop = TsolPropertyPrivate(pProp); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1207 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1208 |
if (pProp->propertyName == stuff->atom) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1209 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1210 |
if (tsolpolyinstinfo.enabled) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1211 |
if (tsolprop->uid == tsolpolyinstinfo.uid && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1212 |
tsolprop->sl == tsolpolyinstinfo.sl) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1213 |
break; /* match found */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1214 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1215 |
if (tsolprop->uid == tsolinfo->uid && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1216 |
tsolprop->sl == tsolinfo->sl) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1217 |
break; /* match found */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1218 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1219 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1220 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1221 |
pProp = pProp->next; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1222 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1223 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1224 |
if (!pProp) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1225 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1226 |
/* property does not exist, use window's attributes */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1227 |
tsolres = TsolWindowPrivate(pWin); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1228 |
tsolprop = NULL; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1229 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1230 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1231 |
if (stuff->mask & RES_UID) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1232 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1233 |
rep.uid = tsolprop ? tsolprop->uid : tsolres->uid; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1234 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1235 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1236 |
/* allocate temp storage for labels */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1237 |
sl = malloc(SL_SIZE); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1238 |
rep.sllength = rep.illength = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1239 |
if (sl == NULL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1240 |
return (BadAlloc); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1241 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1242 |
/* fill the fields as per request mask */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1243 |
if (stuff->mask & RES_SL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1244 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1245 |
memcpy(sl, tsolprop ? tsolprop->sl : tsolres->sl, SL_SIZE); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1246 |
rep.sllength = SL_SIZE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1247 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1248 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1249 |
rep.type = X_Reply; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1250 |
rep.sequenceNumber = client->sequence; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1251 |
rep.length = (CARD32) (rep.sllength)/4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1252 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1253 |
if (rep.length > 0) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1254 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1255 |
reply_length = rep.length*4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1256 |
write_to_client = 1; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1257 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1258 |
if (client->swapped) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1259 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1260 |
swaps(&rep.sequenceNumber, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1261 |
swapl(&rep.length, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1262 |
swapl(&rep.uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1263 |
swaps(&rep.sllength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1264 |
swaps(&rep.illength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1265 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1266 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1267 |
WriteToClient(client, sizeof(xGetPropAttributesReply), (char *)&rep); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1268 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1269 |
if (write_to_client == 1) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1270 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1271 |
WriteToClient(client, reply_length, (char *)sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1272 |
} |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1273 |
free(sl); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1274 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1275 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1276 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1277 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1278 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1279 |
ProcGetResAttributes(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1280 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1281 |
int n; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1282 |
int reply_length = 0; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1283 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1284 |
Bool write_to_client = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1285 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1286 |
PixmapPtr pMap; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1287 |
WindowPtr pWin; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1288 |
TsolResPtr tsolres = NULL; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1289 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1290 |
xGetResAttributesReply rep; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1291 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1292 |
REQUEST(xGetResAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1293 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1294 |
REQUEST_SIZE_MATCH(xGetResAttributesReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1295 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1296 |
if (stuff->mask & RES_STRIPE) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1297 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1298 |
rep.uid = ScreenStripeHeight[stuff->id]; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1299 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1300 |
if (stuff->mask & RES_OUID) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1301 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1302 |
rep.owneruid = OwnerUID; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1303 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1304 |
if (stuff->resourceType == IsWindow && |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1305 |
(stuff->mask & (RES_UID | RES_SL ))) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1306 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1307 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1308 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1309 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1310 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1311 |
tsolres = TsolWindowPrivate(pWin); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1312 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1313 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1314 |
if (stuff->resourceType == IsPixmap && |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1315 |
(stuff->mask & (RES_UID | RES_SL ))) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1316 |
{ |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1317 |
rc = dixLookupDrawable((DrawablePtr *)&pMap, stuff->id, client, |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1318 |
M_DRAWABLE_PIXMAP, DixWriteAccess); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1319 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1320 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1321 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1322 |
tsolres = TsolPixmapPrivate(pMap); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1323 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1324 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1325 |
if (stuff->mask & RES_UID) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1326 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1327 |
rep.uid = tsolres->uid; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1328 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1329 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1330 |
/* allocate temp storage for labels */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1331 |
sl = malloc(SL_SIZE); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1332 |
rep.sllength = rep.illength = rep.iillength = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1333 |
if (sl == NULL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1334 |
return (BadAlloc); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1335 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1336 |
/* fill the fields as per request mask */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1337 |
if (stuff->mask & RES_SL) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1338 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1339 |
memcpy(sl, tsolres->sl, SL_SIZE); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1340 |
rep.sllength = SL_SIZE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1341 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1342 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1343 |
rep.type = X_Reply; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1344 |
rep.sequenceNumber = client->sequence; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1345 |
rep.length = (CARD32) (rep.sllength)/4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1346 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1347 |
if (rep.length > 0) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1348 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1349 |
reply_length = rep.length*4; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1350 |
write_to_client = 1; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1351 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1352 |
if (client->swapped) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1353 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1354 |
swaps(&rep.sequenceNumber, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1355 |
swapl(&rep.length, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1356 |
swapl(&rep.uid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1357 |
swapl(&rep.owneruid, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1358 |
swaps(&rep.sllength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1359 |
swaps(&rep.illength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1360 |
swaps(&rep.iillength, n); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1361 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1362 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1363 |
WriteToClient(client, sizeof(xGetResAttributesReply), (char *)&rep); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1364 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1365 |
if (write_to_client == 1) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1366 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1367 |
WriteToClient(client, reply_length, (char *)sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1368 |
} |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1369 |
free(sl); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1370 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1371 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1372 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1373 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1374 |
int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1375 |
ProcMakeTPWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1376 |
{ |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1377 |
WindowPtr pWin = NULL, pParent; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1378 |
int rc; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1379 |
TsolInfoPtr tsolinfo; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1380 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1381 |
REQUEST(xMakeTPWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1382 |
REQUEST_SIZE_MATCH(xMakeTPWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1383 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1384 |
/* |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1385 |
* Session type single-level? This is set by the |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1386 |
* label builder |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1387 |
*/ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1388 |
tsolinfo = GetClientTsolInfo(client); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1389 |
if (tsolinfo && HasTrustedPath(tsolinfo) && |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1390 |
blequal(&SessionLO, &SessionHI) && stuff->id == 0) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1391 |
tsolMultiLevel = FALSE; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1392 |
return (client->noClientException); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1393 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1394 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1395 |
#if defined(PANORAMIX) |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1396 |
if (!noPanoramiXExtension) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1397 |
{ |
470
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1398 |
PanoramiXRes *panres = NULL; |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1399 |
int j; |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1400 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1401 |
rc = dixLookupResourceByType((pointer *) &panres, stuff->id, |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1402 |
XRT_WINDOW, client, DixWriteAccess); |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1403 |
if (rc != Success) |
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1404 |
return rc; |
470
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1405 |
|
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1406 |
FOR_NSCREENS_BACKWARD(j) |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1407 |
{ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1408 |
rc = dixLookupWindow(&pWin, panres->info[j].id, |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1409 |
client, DixWriteAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1410 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1411 |
return rc; |
470
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1412 |
|
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1413 |
/* window should not be root but child of root */ |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1414 |
if (!pWin || (!pWin->parent)) |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1415 |
{ |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1416 |
client->errorValue = stuff->id; |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1417 |
return (BadWindow); |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1418 |
} |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1419 |
|
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1420 |
pParent = pWin->parent; |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1421 |
if (pParent->firstChild != pWin) |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1422 |
{ |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1423 |
tpwin = (WindowPtr)NULL; |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1424 |
ReflectStackChange(pWin, pParent->firstChild, VTStack); |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1425 |
} |
77e77d76a7c9
6680281 Xnewt core dumps with Multihead Xinerama TJDS session on TX10 U5 sparc
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
461
diff
changeset
|
1426 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1427 |
} else |
311
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1428 |
#endif |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1429 |
{ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1430 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1431 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1432 |
return rc; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1433 |
|
311
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1434 |
|
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1435 |
/* window should not be root but child of root */ |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1436 |
if (!pWin || (!pWin->parent)) |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1437 |
{ |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1438 |
client->errorValue = stuff->id; |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1439 |
return (BadWindow); |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1440 |
} |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1441 |
|
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1442 |
pParent = pWin->parent; |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1443 |
if (pParent->firstChild != pWin) |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1444 |
{ |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1445 |
tpwin = (WindowPtr)NULL; |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1446 |
ReflectStackChange(pWin, pParent->firstChild, VTStack); |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1447 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1448 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1449 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1450 |
tpwin = pWin; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1451 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1452 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1453 |
* Force kbd & ptr ungrab. This will cause |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1454 |
* screen to lock even when kbd/ptr grabbed by |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1455 |
* a client |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1456 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1457 |
BreakAllGrabs(client); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1458 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1459 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1460 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1461 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1462 |
* Turn on window's Trusted bit |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1463 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1464 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1465 |
ProcMakeTrustedWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1466 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1467 |
WindowPtr pWin; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1468 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1469 |
TsolInfoPtr tsolinfo; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1470 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1471 |
REQUEST(xMakeTrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1472 |
REQUEST_SIZE_MATCH(xMakeTrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1473 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1474 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1475 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1476 |
return rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1477 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1478 |
/* window should not be root but child of root */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1479 |
if (!pWin || (!pWin->parent)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1480 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1481 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1482 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1483 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1484 |
tsolinfo = GetClientTsolInfo(client); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1485 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1486 |
if (!HasTrustedPath(tsolinfo)) |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1487 |
return (BadAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1488 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1489 |
/* Turn on Trusted bit of the window */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1490 |
tsolinfo->forced_trust = 1; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1491 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1492 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1493 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1494 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1495 |
* Turn off window's Trusted bit |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1496 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1497 |
static int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1498 |
ProcMakeUntrustedWindow(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1499 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1500 |
WindowPtr pWin; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1501 |
int rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1502 |
TsolInfoPtr tsolinfo; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1503 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1504 |
REQUEST(xMakeUntrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1505 |
REQUEST_SIZE_MATCH(xMakeUntrustedWindowReq); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1506 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1507 |
rc = dixLookupWindow(&pWin, stuff->id, client, DixWriteAccess); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1508 |
if (rc != Success) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1509 |
return rc; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1510 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1511 |
/* window should not be root but child of root */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1512 |
if (!pWin || (!pWin->parent)) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1513 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1514 |
client->errorValue = stuff->id; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1515 |
return (BadWindow); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1516 |
} |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1517 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1518 |
tsolinfo = GetClientTsolInfo(client); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1519 |
if (!HasTrustedPath(tsolinfo)) |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1520 |
return (BadAccess); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1521 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1522 |
tsolinfo->forced_trust = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1523 |
tsolinfo->trusted_path = FALSE; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1524 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1525 |
return (client->noClientException); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1526 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1527 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1528 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1529 |
* Break keyboard & ptr grabs of clients other than |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1530 |
* the requesting client. |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1531 |
* Called from ProcMakeTPWindow. |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1532 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1533 |
static void |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1534 |
BreakAllGrabs(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1535 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1536 |
ClientPtr grabclient; |
705
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1537 |
DeviceIntPtr keybd = PickKeyboard(client); |
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1538 |
GrabPtr kbdgrab = keybd->deviceGrab.grab; |
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1539 |
DeviceIntPtr mouse = PickPointer(client); |
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1540 |
GrabPtr ptrgrab = mouse->deviceGrab.grab; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1541 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1542 |
if (kbdgrab) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1543 |
grabclient = clients[CLIENT_ID(kbdgrab->resource)]; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1544 |
if (client->index != grabclient->index) |
705
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1545 |
(*keybd->deviceGrab.DeactivateGrab)(keybd); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1546 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1547 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1548 |
if (ptrgrab) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1549 |
grabclient = clients[CLIENT_ID(ptrgrab->resource)]; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1550 |
if (client->index != grabclient->index) |
705
24ca414edbff
6826940 Xorg server 1.6.1, Mesa 7.4.1, and associated module upgrades [PSARC 2009/292]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
698
diff
changeset
|
1551 |
(*mouse->deviceGrab.DeactivateGrab)(mouse); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1552 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1553 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1554 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1555 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1556 |
* Trusted Network interface module. Uses tsix API |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1557 |
*/ |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1558 |
extern au_id_t ucred_getauid(const ucred_t *uc); |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1559 |
extern au_asid_t ucred_getasid(const ucred_t *uc); |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1560 |
extern const au_mask_t *ucred_getamask(const ucred_t *uc); |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1561 |
extern tsol_host_type_t tsol_getrhtype(char *); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1562 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1563 |
static void |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1564 |
TsolSetClientInfo(ClientPtr client) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1565 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1566 |
bslabel_t *sl; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1567 |
bslabel_t admin_low; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1568 |
priv_set_t *privs; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1569 |
const au_mask_t *amask; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1570 |
socklen_t namelen; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1571 |
struct auditinfo auinfo; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1572 |
struct auditinfo *pauinfo; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1573 |
OsCommPtr oc = (OsCommPtr)client->osPrivate; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1574 |
int fd = oc->fd; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1575 |
ucred_t *uc = NULL; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1576 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1577 |
TsolInfoPtr tsolinfo = TsolClientPrivate(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1578 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1579 |
/* Get client attributes from the socket */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1580 |
if (getpeerucred(fd, &uc) == -1) { |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1581 |
const char *errmsg = strerror(errno); |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1582 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1583 |
tsolinfo->uid = (uid_t)(-1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1584 |
tsolinfo->sl = NULL; |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1585 |
snprintf(tsolinfo->pname, MAXNAME, |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1586 |
"client id %d (pid unknown)", client->index); |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1587 |
LogMessageVerb(X_ERROR, TSOL_MSG_ERROR, |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1588 |
TSOL_LOG_PREFIX "Cannot get client attributes" |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1589 |
" for %s, getpeerucred failed: %s\n", |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1590 |
tsolinfo->pname, errmsg); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1591 |
return; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1592 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1593 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1594 |
/* Extract individual fields from the cred structure */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1595 |
tsolinfo->zid = ucred_getzoneid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1596 |
tsolinfo->uid = ucred_getruid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1597 |
tsolinfo->euid = ucred_geteuid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1598 |
tsolinfo->gid = ucred_getrgid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1599 |
tsolinfo->egid = ucred_getegid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1600 |
tsolinfo->pid = ucred_getpid(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1601 |
sl = ucred_getlabel(uc); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1602 |
tsolinfo->sl = (bslabel_t *)lookupSL(sl); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1603 |
|
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1604 |
/* store a string for debug/error messages - would be nice to |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1605 |
get the real process name out of /proc in the future |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1606 |
*/ |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1607 |
snprintf(tsolinfo->pname, MAXNAME, "client id %d (pid %d)", |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1608 |
client->index, tsolinfo->pid); |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
1609 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1610 |
/* Set privileges */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1611 |
if ((tsolinfo->privs = priv_allocset()) != NULL) { |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1612 |
if (tsolMultiLevel) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1613 |
privs = (priv_set_t *)ucred_getprivset(uc, PRIV_EFFECTIVE); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1614 |
if (privs == NULL) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1615 |
priv_emptyset(tsolinfo->privs); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1616 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1617 |
priv_copyset(privs, tsolinfo->privs); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1618 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1619 |
} else { |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1620 |
priv_fillset(tsolinfo->privs); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1621 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1622 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1623 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1624 |
tsolinfo->priv_debug = FALSE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1625 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1626 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1627 |
/* |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1628 |
* For remote hosts, the uid is determined during access control |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1629 |
* using Secure RPC |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1630 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1631 |
if (tsolinfo->zid == (zoneid_t)-1) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1632 |
tsolinfo->client_type = CLIENT_REMOTE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1633 |
} else { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1634 |
tsolinfo->client_type = CLIENT_LOCAL; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1635 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1636 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1637 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1638 |
/* Set Trusted Path for local clients */ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1639 |
if (tsolinfo->zid == GLOBAL_ZONEID) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1640 |
tsolinfo->trusted_path = TRUE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1641 |
}else { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1642 |
tsolinfo->trusted_path = FALSE; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1643 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1644 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1645 |
if (tsolinfo->trusted_path || !tsolMultiLevel) |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1646 |
setClientTrustLevel(client, XSecurityClientTrusted); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1647 |
else |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1648 |
setClientTrustLevel(client, XSecurityClientUntrusted); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1649 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1650 |
tsolinfo->forced_trust = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1651 |
tsolinfo->iaddr = 0; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1652 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1653 |
bsllow(&admin_low); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1654 |
|
311
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1655 |
/* Set reasonable defaults for remote clients */ |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1656 |
namelen = sizeof (tsolinfo->saddr); |
311
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1657 |
if (getpeername(fd, (struct sockaddr *)&tsolinfo->saddr, &namelen) == 0 |
881fb798a4fe
6630643 In Xinerama vertical configuration Trusted Path is covered by other applications
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
228
diff
changeset
|
1658 |
&& (tsolinfo->client_type == CLIENT_REMOTE)) { |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1659 |
int errcode; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1660 |
char hostbuf[NI_MAXHOST]; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1661 |
tsol_host_type_t host_type; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1662 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1663 |
/* Use NI_NUMERICHOST to avoid DNS lookup */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1664 |
errcode = getnameinfo((struct sockaddr *)&(tsolinfo->saddr), namelen, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1665 |
hostbuf, sizeof(hostbuf), NULL, 0, NI_NUMERICHOST); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1666 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1667 |
if (errcode) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1668 |
perror(gai_strerror(errcode)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1669 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1670 |
host_type = tsol_getrhtype(hostbuf); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1671 |
if ((host_type == SUN_CIPSO) && |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1672 |
blequal(tsolinfo->sl, &admin_low)) { |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1673 |
tsolinfo->trusted_path = TRUE; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1674 |
setClientTrustLevel(client, |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1675 |
XSecurityClientTrusted); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1676 |
priv_fillset(tsolinfo->privs); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1677 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1678 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1679 |
} |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1680 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1681 |
/* setup audit context */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1682 |
if (getaudit(&auinfo) == 0) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1683 |
pauinfo = &auinfo; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1684 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1685 |
pauinfo = NULL; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1686 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1687 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1688 |
/* Audit id */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1689 |
tsolinfo->auid = ucred_getauid(uc); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1690 |
if (tsolinfo->auid == AU_NOAUDITID) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1691 |
tsolinfo->auid = UID_NOBODY; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1692 |
} |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1693 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1694 |
/* session id */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1695 |
tsolinfo->asid = ucred_getasid(uc); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1696 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1697 |
/* Audit mask */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1698 |
if ((amask = ucred_getamask(uc)) != NULL) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1699 |
tsolinfo->amask = *amask; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1700 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1701 |
if (pauinfo != NULL) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1702 |
tsolinfo->amask = pauinfo->ai_mask; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1703 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1704 |
tsolinfo->amask.am_failure = 0; /* clear the masks */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1705 |
tsolinfo->amask.am_success = 0; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1706 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1707 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1708 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1709 |
tsolinfo->asaverd = 0; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1710 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1711 |
ucred_free(uc); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1712 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1713 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1714 |
static enum auth_stat tsol_why; |
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1715 |
extern bool_t xdr_opaque_auth(XDR *, struct opaque_auth *); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1716 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1717 |
static char * |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1718 |
tsol_authdes_decode(char *inmsg, int len) |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1719 |
{ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1720 |
struct rpc_msg msg; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1721 |
char cred_area[MAX_AUTH_BYTES]; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1722 |
char verf_area[MAX_AUTH_BYTES]; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1723 |
char *temp_inmsg; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1724 |
struct svc_req r; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1725 |
bool_t res0, res1; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1726 |
XDR xdr; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1727 |
SVCXPRT xprt; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1728 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1729 |
temp_inmsg = malloc(len); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1730 |
memmove(temp_inmsg, inmsg, len); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1731 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1732 |
memset((char *)&msg, 0, sizeof(msg)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1733 |
memset((char *)&r, 0, sizeof(r)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1734 |
memset(cred_area, 0, sizeof(cred_area)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1735 |
memset(verf_area, 0, sizeof(verf_area)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1736 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1737 |
msg.rm_call.cb_cred.oa_base = cred_area; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1738 |
msg.rm_call.cb_verf.oa_base = verf_area; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1739 |
tsol_why = AUTH_FAILED; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1740 |
xdrmem_create(&xdr, temp_inmsg, len, XDR_DECODE); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1741 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1742 |
if ((r.rq_clntcred = malloc(MAX_AUTH_BYTES)) == NULL) |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1743 |
goto bad1; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1744 |
r.rq_xprt = &xprt; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1745 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1746 |
/* decode into msg */ |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1747 |
res0 = xdr_opaque_auth(&xdr, &(msg.rm_call.cb_cred)); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1748 |
res1 = xdr_opaque_auth(&xdr, &(msg.rm_call.cb_verf)); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1749 |
if ( ! (res0 && res1) ) |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1750 |
goto bad2; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1751 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1752 |
/* do the authentication */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1753 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1754 |
r.rq_cred = msg.rm_call.cb_cred; /* read by opaque stuff */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1755 |
if (r.rq_cred.oa_flavor != AUTH_DES) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1756 |
tsol_why = AUTH_TOOWEAK; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1757 |
goto bad2; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1758 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1759 |
#ifdef SVR4 |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1760 |
if ((tsol_why = __authenticate(&r, &msg)) != AUTH_OK) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1761 |
#else |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1762 |
if ((tsol_why = _authenticate(&r, &msg)) != AUTH_OK) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1763 |
#endif |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1764 |
goto bad2; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1765 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1766 |
return (((struct authdes_cred *) r.rq_clntcred)->adc_fullname.name); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1767 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1768 |
bad2: |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1769 |
free(r.rq_clntcred); |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1770 |
bad1: |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1771 |
return ((char *)0); /* ((struct authdes_cred *) NULL); */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1772 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1773 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1774 |
static Bool |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1775 |
TsolCheckNetName (unsigned char *addr, short len, pointer closure) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1776 |
{ |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1777 |
return (len == (short) strlen ((char *) closure) && |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1778 |
strncmp ((char *) addr, (char *) closure, len) == 0); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1779 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1780 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1781 |
extern int getdomainname(char *, int); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1782 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1783 |
static XID |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1784 |
TsolCheckAuthorization(unsigned int name_length, char *name, |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1785 |
unsigned int data_length, char *data, |
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1786 |
ClientPtr client, char **reason) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1787 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1788 |
char domainname[128]; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1789 |
char netname[128]; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1790 |
char audit_ret; |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1791 |
uint_t audit_val; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1792 |
uid_t client_uid; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1793 |
gid_t client_gid; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1794 |
int client_gidlen; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1795 |
char *fullname; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1796 |
gid_t client_gidlist; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1797 |
XID auth_token = (XID)(-1); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1798 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1799 |
|
633
ef1b810146d6
6803747 Xtsol Xorg module has too many warnings when building
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
621
diff
changeset
|
1800 |
if (tsolinfo->uid == (uid_t) -1) { |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1801 |
/* Retrieve uid from SecureRPC */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1802 |
if (strncmp(name, SECURE_RPC_AUTH, (size_t)name_length) == 0) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1803 |
fullname = tsol_authdes_decode(data, data_length); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1804 |
if (fullname == NULL) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1805 |
ErrorF("Unable to authenticate Secure RPC client"); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1806 |
} else { |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1807 |
if (netname2user(fullname, |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1808 |
&client_uid, &client_gid, |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1809 |
&client_gidlen, &client_gidlist)) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1810 |
tsolinfo->uid = client_uid; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1811 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1812 |
ErrorF("netname2user failed"); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1813 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1814 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1815 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1816 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1817 |
|
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1818 |
if (tsolinfo->uid == (uid_t)-1) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1819 |
tsolinfo->uid = UID_NOBODY; /* uid not available */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1820 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1821 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1822 |
/* |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
1823 |
* For multilevel desktop, limit connections to the trusted path |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1824 |
* i.e. global zone until a user logs in and the trusted stripe |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
1825 |
* is in place. Unlabeled connections are rejected. |
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
1826 |
*/ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1827 |
if ((OwnerUID == (uid_t)(-1)) || (tsolMultiLevel && tpwin == NULL)) { |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1828 |
if (HasTrustedPath(tsolinfo)) { |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1829 |
auth_token = CheckAuthorization(name_length, name, data_length, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1830 |
data, client, reason); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1831 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1832 |
} else { |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1833 |
/* |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1834 |
* Workstation Owner set, client must be within label |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1835 |
* range or have trusted path |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1836 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1837 |
if (tsolinfo->uid == OwnerUID) { |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1838 |
if ((tsolinfo->sl != NULL && |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1839 |
(bldominates(tsolinfo->sl, &SessionLO) && |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1840 |
bldominates(&SessionHI, tsolinfo->sl))) || |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1841 |
(HasTrustedPath(tsolinfo))) { |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1842 |
auth_token = (XID)(tsolinfo->uid); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1843 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1844 |
} else { |
461
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1845 |
/* Allow root from global zone */ |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1846 |
if (tsolinfo->uid == 0 && HasTrustedPath(tsolinfo)) { |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1847 |
auth_token = (XID)(tsolinfo->uid); |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1848 |
} else { |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1849 |
/* |
461
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1850 |
* Access check based on uid. Check if |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1851 |
* roles or other uids have been added by |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1852 |
* xhost +role@ |
0dfa99decf9e
6702181 cannot change label in root role's workspace
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
311
diff
changeset
|
1853 |
*/ |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1854 |
getdomainname(domainname, sizeof(domainname)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1855 |
if (!user2netname(netname, tsolinfo->uid, domainname)) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1856 |
return ((XID)-1); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1857 |
} |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1858 |
if (ForEachHostInFamily (FamilyNetname, TsolCheckNetName, |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1859 |
(pointer) netname)) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1860 |
return ((XID)(tsolinfo->uid)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1861 |
} else { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1862 |
return (CheckAuthorization(name_length, name, data_length, |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1863 |
data, client, reason)); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1864 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1865 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1866 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1867 |
} |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1868 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1869 |
/* Audit the connection */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1870 |
if (auth_token == (XID)(-1)) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1871 |
audit_ret = (char )-1; /* failure */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1872 |
audit_val = 1; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1873 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1874 |
audit_ret = 0; /* success */ |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1875 |
audit_val = 0; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1876 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1877 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1878 |
if (system_audit_on && |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1879 |
(au_preselect(AUE_ClientConnect, &(tsolinfo->amask), |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1880 |
AU_PRS_BOTH, AU_PRS_USECACHE) == 1)) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1881 |
int status; |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1882 |
ushort_t connect_port = 0; |
36
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1883 |
struct in_addr *connect_addr = NULL; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1884 |
struct sockaddr_in *sin; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1885 |
struct sockaddr_in6 *sin6; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1886 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1887 |
switch (tsolinfo->saddr.ss_family) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1888 |
case AF_INET: |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1889 |
sin = (struct sockaddr_in *)&(tsolinfo->saddr); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1890 |
connect_addr = &(sin->sin_addr); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1891 |
connect_port = sin->sin_port; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1892 |
break; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1893 |
case AF_INET6: |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1894 |
sin6 = (struct sockaddr_in6 *)&(tsolinfo->saddr); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1895 |
connect_addr = (struct in_addr *)&(sin6->sin6_addr); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1896 |
connect_port = sin6->sin6_port; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1897 |
break; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1898 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1899 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1900 |
if (connect_addr == NULL || connect_port == 0) { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1901 |
status = auditwrite(AW_EVENTNUM, AUE_ClientConnect, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1902 |
AW_XCLIENT, client->index, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1903 |
AW_SLABEL, tsolinfo->sl, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1904 |
AW_RETURN, audit_ret, audit_val, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1905 |
AW_WRITE, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1906 |
} else { |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1907 |
status = auditwrite(AW_EVENTNUM, AUE_ClientConnect, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1908 |
AW_XCLIENT, client->index, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1909 |
AW_SLABEL, tsolinfo->sl, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1910 |
AW_INADDR, connect_addr, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1911 |
AW_IPORT, connect_port, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1912 |
AW_RETURN, audit_ret, audit_val, |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1913 |
AW_WRITE, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1914 |
} |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1915 |
|
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1916 |
if (!status) |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1917 |
(void) auditwrite(AW_FLUSH, AW_END); |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1918 |
tsolinfo->flags &= ~TSOL_DOXAUDIT; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1919 |
tsolinfo->flags &= ~TSOL_AUDITEVENT; |
07b00e5ea8c8
Trusted Extensions bug fixes
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
0
diff
changeset
|
1920 |
} |
196
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
1921 |
|
b7c1d614eb84
Trusted Extensions bug fixes:
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
168
diff
changeset
|
1922 |
return (auth_token); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1923 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1924 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1925 |
static CALLBACK( |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1926 |
TsolProcessKeyboard) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1927 |
{ |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1928 |
XaceKeyAvailRec *rec = (XaceKeyAvailRec *) calldata; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1929 |
xEvent *xE = rec->event; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1930 |
DeviceIntPtr keybd = rec->keybd; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1931 |
/* int count = rec->count; */ |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1932 |
HotKeyPtr hotkey = TsolKeyboardPrivate(keybd); |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
1933 |
|
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1934 |
if (xE->u.u.type == KeyPress) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1935 |
{ |
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1936 |
if (!hotkey->initialized) |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1937 |
InitHotKey(keybd); |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1938 |
|
851
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1939 |
if (((xE->u.u.detail == hotkey->key) && |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1940 |
(xE->u.keyButtonPointer.state != 0 && |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1941 |
xE->u.keyButtonPointer.state == hotkey->shift)) || |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1942 |
((xE->u.u.detail == hotkey->altkey) && |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1943 |
(xE->u.keyButtonPointer.state != 0 && |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1944 |
xE->u.keyButtonPointer.state == hotkey->altshift))) |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1945 |
{ |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1946 |
HandleHotKey(keybd); |
d428083dbbdd
6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
799
diff
changeset
|
1947 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1948 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1949 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
1950 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1951 |
static CALLBACK( |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1952 |
TsolCheckSendAccess) |
614
5ef3ebaba4c3
6795930 Login screen never appears on TX machine running Xorg 1.5
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
606
diff
changeset
|
1953 |
{ |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1954 |
XaceSendAccessRec *rec = (XaceSendAccessRec *) calldata; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1955 |
ClientPtr client = rec->client; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1956 |
WindowPtr pWin = rec->pWin; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1957 |
TsolResPtr tsolres; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1958 |
xpolicy_t flags; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1959 |
TsolInfoPtr tsolinfo; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1960 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1961 |
rec->status = BadAccess; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1962 |
if (client == NULL) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1963 |
rec->status = Success; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1964 |
return; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1965 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1966 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1967 |
if (WindowIsRoot(pWin) || XTSOLTrusted(pWin)) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1968 |
rec->status = Success; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1969 |
return; |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1970 |
} |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1971 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1972 |
tsolinfo = GetClientTsolInfo(client); |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
1973 |
tsolres = TsolWindowPrivate(pWin); |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1974 |
flags = (TSOL_MAC|TSOL_DAC|TSOL_DOMINATE|TSOL_READOP); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1975 |
rec->status = tsol_check_policy(tsolinfo, tsolres, flags, MAJOROP_CODE); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1976 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1977 |
#ifndef NO_TSOL_DEBUG_MESSAGES |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1978 |
if (rec->status != Success) { |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1979 |
tsolinfo = GetClientTsolInfo(client); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1980 |
LogMessageVerb(X_ERROR, TSOL_MSG_ERROR, |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1981 |
TSOL_LOG_PREFIX |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1982 |
"TsolCheckSendAccess(%s, %s) = %s\n", |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1983 |
tsolinfo->pname, |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1984 |
TsolRequestNameString(MAJOROP_CODE), |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1985 |
TsolErrorNameString(rec->status)); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1986 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1987 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
1988 |
#endif /* !NO_TSOL_DEBUG_MESSAGES */ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1989 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1990 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1991 |
static CALLBACK( |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1992 |
TsolCheckReceiveAccess) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1993 |
{ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1994 |
XaceReceiveAccessRec *rec = (XaceReceiveAccessRec *) calldata; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1995 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1996 |
rec->status = Success; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1997 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1998 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
1999 |
|
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2000 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2001 |
static CALLBACK( |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2002 |
TsolCheckSelectionAccess) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2003 |
{ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2004 |
XaceSelectionAccessRec *rec = (XaceSelectionAccessRec *) calldata; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2005 |
ClientPtr client = rec->client; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2006 |
Selection *pSel = *rec->ppSel; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2007 |
Atom selAtom = pSel->selection; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2008 |
Mask access_mode = rec->access_mode; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2009 |
int reqtype; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2010 |
TsolResPtr tsolseln; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2011 |
TsolInfoPtr tsolinfo; /* tsol client info */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2012 |
tsolinfo = GetClientTsolInfo(client); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2013 |
int polySelection = PolySelection(selAtom); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2014 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2015 |
reqtype = MAJOROP_CODE; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2016 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2017 |
switch (reqtype) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2018 |
case X_SetSelectionOwner: |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2019 |
/* |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2020 |
* Special processing for selection agent. This is how |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2021 |
* we know who to redirect privileged ConvertSelection requests. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2022 |
* This is also used to fake the onwership of GetSelectionOwner requests. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2023 |
*/ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2024 |
if (selAtom == tsol_atom_sel_agnt) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2025 |
if (HasWinSelection(tsolinfo)) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2026 |
if (tsolinfo->flags & TSOL_AUDITEVENT) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2027 |
auditwrite(AW_USEOFPRIV, 1, PRIV_WIN_SELECTION, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2028 |
AW_APPEND, AW_END); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2029 |
tsol_sel_agnt = pSel; /* owner of this seln */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2030 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2031 |
if (tsolinfo->flags & TSOL_AUDITEVENT) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2032 |
auditwrite(AW_USEOFPRIV, 0, PRIV_WIN_SELECTION, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2033 |
AW_APPEND, AW_END); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2034 |
client->errorValue = selAtom; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2035 |
rec->status = BadAtom; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2036 |
return; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2037 |
} |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2038 |
} |
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2039 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2040 |
/* |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2041 |
* The callback function is only called if at least one matching selection exists. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2042 |
* If it has no tsol attributes then we know it is the only match so we don't need to |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2043 |
* check for polyinstantiation. Just initialize it and return. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2044 |
*/ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2045 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2046 |
tsolseln = TsolSelectionPrivate(pSel); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2047 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2048 |
if (tsolseln->sl == NULL) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2049 |
tsolseln->sl = tsolinfo->sl; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2050 |
tsolseln->uid = tsolinfo->uid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2051 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2052 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2053 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2054 |
if (polySelection) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2055 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2056 |
/* for poly-selections, search from the beginning to see if sl,uid match */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2057 |
for (pSel = CurrentSelections; pSel; pSel = pSel->next) { |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2058 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2059 |
if (pSel->selection == selAtom) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2060 |
tsolseln = TsolSelectionPrivate(pSel); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2061 |
if (tsolseln->uid == tsolinfo->uid && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2062 |
tsolseln->sl == tsolinfo->sl) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2063 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2064 |
} |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2065 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2066 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2067 |
if (pSel) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2068 |
/* found a match */ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2069 |
*rec->ppSel = pSel; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2070 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2071 |
/* |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2072 |
* Doesn't match yet; we'll get called again |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2073 |
* After it gets created. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2074 |
*/ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2075 |
rec->status = BadMatch; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2076 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2077 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2078 |
/* Assign the sl & uid */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2079 |
tsolseln->sl = tsolinfo->sl; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2080 |
tsolseln->uid = tsolinfo->uid; |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2081 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2082 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2083 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2084 |
case X_GetSelectionOwner: |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2085 |
case X_ConvertSelection: |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2086 |
if (polySelection) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2087 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2088 |
/* for poly-selections, search from the beginning to see if sl,uid match */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2089 |
for (pSel = CurrentSelections; pSel; pSel = pSel->next) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2090 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2091 |
if (pSel->selection == selAtom) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2092 |
tsolseln = TsolSelectionPrivate(pSel); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2093 |
if (tsolseln->uid == tsolinfo->uid && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2094 |
tsolseln->sl == tsolinfo->sl) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2095 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2096 |
} |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2097 |
} |
614
5ef3ebaba4c3
6795930 Login screen never appears on TX machine running Xorg 1.5
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
606
diff
changeset
|
2098 |
|
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2099 |
if (pSel) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2100 |
*rec->ppSel = pSel; /* found match */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2101 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2102 |
/* |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2103 |
* Doesn't match yet; we'll get called again |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2104 |
* After it gets created. |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2105 |
*/ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2106 |
rec->status = BadMatch; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2107 |
return; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2108 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2109 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2110 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2111 |
/* |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2112 |
* Selection Agent processing. Override the owner |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2113 |
*/ |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2114 |
tsolseln = TsolSelectionPrivate(pSel); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2115 |
if (!HasWinSelection(tsolinfo) && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2116 |
(tsolseln->uid != tsolinfo->uid || |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2117 |
tsolseln->sl != tsolinfo->sl) && |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2118 |
pSel->window != None && tsol_sel_agnt != NULL) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2119 |
pSel = tsol_sel_agnt; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2120 |
} else { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2121 |
if (HasWinSelection(tsolinfo) && |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2122 |
(tsolinfo->flags & TSOL_AUDITEVENT)) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2123 |
auditwrite(AW_USEOFPRIV, 1, PRIV_WIN_SELECTION, AW_APPEND, AW_END); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2124 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2125 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2126 |
*rec->ppSel = pSel; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2127 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2128 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2129 |
default: |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2130 |
#ifndef NO_TSOL_DEBUG_MESSAGES |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2131 |
tsolinfo = GetClientTsolInfo(client); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2132 |
LogMessageVerb(X_NOT_IMPLEMENTED, TSOL_MSG_UNIMPLEMENTED, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2133 |
TSOL_LOG_PREFIX |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2134 |
"policy not implemented for CheckSelectionAccess(%s, %s, %s, %s) = %s\n", |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2135 |
tsolinfo->pname, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2136 |
TsolDixAccessModeNameString(access_mode), |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2137 |
TsolRequestNameString(reqtype), |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2138 |
NameForAtom(selAtom), |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2139 |
TsolErrorNameString(rec->status)); |
639
01a1b4688b04
6805015 Improved Xtsol extension debug infrastructure
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
633
diff
changeset
|
2140 |
#endif /* !NO_TSOL_DEBUG_MESSAGES */ |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2141 |
break; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2142 |
} |
614
5ef3ebaba4c3
6795930 Login screen never appears on TX machine running Xorg 1.5
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
606
diff
changeset
|
2143 |
} |
5ef3ebaba4c3
6795930 Login screen never appears on TX machine running Xorg 1.5
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
606
diff
changeset
|
2144 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2145 |
static CALLBACK( |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2146 |
TsolCheckPropertyAccess) |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2147 |
{ |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2148 |
XacePropertyAccessRec *rec = (XacePropertyAccessRec *) calldata; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2149 |
ClientPtr client = rec->client; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2150 |
WindowPtr pWin = rec->pWin; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2151 |
PropertyPtr pProp = *rec->ppProp; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2152 |
Atom propertyName = pProp->propertyName; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2153 |
Mask access_mode = rec->access_mode; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2154 |
TsolInfoPtr tsolinfo = GetClientTsolInfo(client); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2155 |
int reqtype; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2156 |
TsolResPtr tsolprop; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2157 |
TsolResPtr tsolres; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2158 |
Status retcode; |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2159 |
xpolicy_t flags = 0; |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2160 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2161 |
reqtype = MAJOROP_CODE; |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2162 |
tsolres = TsolWindowPrivate(pWin); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2163 |
if (pProp != NULL) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2164 |
int polyprop = PolyProperty(propertyName, pWin); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2165 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2166 |
tsolprop = TsolPropertyPrivate(pProp); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2167 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2168 |
if (!polyprop) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2169 |
|
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2170 |
tsolres = TsolWindowPrivate(pWin); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2171 |
if (tsolprop->sl == NULL) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2172 |
/* Initialize with label/uid etc */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2173 |
if (WindowIsRoot(pWin)) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2174 |
tsolprop->sl = tsolinfo->sl; /* use client's sl/uid */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2175 |
tsolprop->uid = tsolinfo->uid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2176 |
tsolprop->pid = tsolinfo->pid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2177 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2178 |
tsolprop->sl = tsolres->sl; /* use window's sl/uid */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2179 |
tsolprop->uid = tsolres->uid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2180 |
tsolprop->pid = tsolres->pid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2181 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2182 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2183 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2184 |
if (access_mode & (DixReadAccess | DixGetAttrAccess)) |
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2185 |
flags = (TSOL_MAC|TSOL_DAC|TSOL_DOMINATE|TSOL_READOP); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2186 |
|
799
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2187 |
if (access_mode & (DixWriteAccess | DixSetAttrAccess)) |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2188 |
flags = (TSOL_MAC|TSOL_DAC|TSOL_WRITEOP); |
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2189 |
|
a7ff35c8968f
6873789 Use XACE extension hooks to provide SUN_TSOL/TX functionalities
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
712
diff
changeset
|
2190 |
retcode = tsol_check_policy(tsolinfo, tsolprop, flags, MAJOROP_CODE); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2191 |
if (retcode != Success && (access_mode & DixGetAttrAccess)) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2192 |
/* If current property is not accessible, move on to |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2193 |
* next one for ListProperty |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2194 |
*/ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2195 |
retcode = Success; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2196 |
*rec->ppProp = pProp->next; /* ignore failurefor List Prop */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2197 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2198 |
rec->status = retcode; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2199 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2200 |
/* Handle polyinstantiated property */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2201 |
if (tsolprop->sl == NULL) { /* New PolyProp */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2202 |
if (!(access_mode & DixCreateAccess)) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2203 |
rec->status = BadImplementation; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2204 |
return; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2205 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2206 |
/* Initialize with label/uid */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2207 |
tsolprop->sl = tsolinfo->sl; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2208 |
tsolprop->uid = tsolinfo->uid; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2209 |
rec->status = Success; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2210 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2211 |
/* search for a matching (sl, uid) pair */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2212 |
while (pProp) { |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2213 |
tsolprop = TsolPropertyPrivate(pProp); |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2214 |
if (pProp->propertyName == propertyName && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2215 |
tsolprop->sl == tsolinfo->sl && |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2216 |
tsolprop->uid == tsolinfo->uid) |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2217 |
break; /* match found */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2218 |
pProp = pProp->next; |
1088
1c99106ccbe0
6983602 Xorg 1.9 integration [PSARC/2011/008]
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
943
diff
changeset
|
2219 |
} |
679
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2220 |
|
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2221 |
if (pProp) { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2222 |
*rec->ppProp = pProp; /* found */ |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2223 |
rec->status = Success; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2224 |
} else { |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2225 |
rec->status = BadMatch; |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2226 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2227 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2228 |
} |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2229 |
#ifndef NO_TSOL_DEBUG_MESSAGES |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2230 |
LogMessageVerb(X_INFO, TSOL_MSG_ACCESS_TRACE, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2231 |
TSOL_LOG_PREFIX |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2232 |
"TsolCheckPropertyAccess(%s, 0x%x, %s, %s) = %s\n", |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2233 |
tsolinfo->pname, pWin->drawable.id, |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2234 |
NameForAtom(propertyName), |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2235 |
TsolDixAccessModeNameString(access_mode), |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2236 |
TsolPolicyReturnString(rec->status)); |
5f3986f48115
6819661 [nevada][tjds] many desktop applications do not launch in TX
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
667
diff
changeset
|
2237 |
#endif /* !NO_TSOL_DEBUG_MESSAGES */ |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2238 |
} |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2239 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2240 |
|
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2241 |
static CALLBACK( |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2242 |
TsolCheckExtensionAccess) |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2243 |
{ |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2244 |
XaceExtAccessRec *rec = (XaceExtAccessRec *) calldata; |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2245 |
|
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2246 |
if (TsolDisabledExtension(rec->ext->name)) { |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2247 |
rec->status = BadAccess; |
712
771b9ca1c8f6
6844065 Some extensions(XKEYBOARD) not visible to labeled zones
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
705
diff
changeset
|
2248 |
} else { |
771b9ca1c8f6
6844065 Some extensions(XKEYBOARD) not visible to labeled zones
Lokanath Das <Lokanath.Das@Sun.COM>
parents:
705
diff
changeset
|
2249 |
rec->status = Success; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2250 |
} |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2251 |
} |
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2252 |
|
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2253 |
#ifdef UNUSED |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2254 |
/* |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2255 |
* Return TRUE if host is cipso |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2256 |
*/ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2257 |
int |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2258 |
host_is_cipso(int fd) |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2259 |
{ |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2260 |
struct sockaddr sname; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2261 |
socklen_t namelen; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2262 |
char *rhost; |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2263 |
tsol_host_type_t host_type; |
0
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2264 |
struct sockaddr_in *so = (struct sockaddr_in *)&sname; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2265 |
extern tsol_host_type_t tsol_getrhtype(char *); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2266 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2267 |
namelen = sizeof (sname); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2268 |
if (getpeername(fd, &sname, &namelen) == -1) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2269 |
perror("getsockname: failed\n"); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2270 |
return FALSE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2271 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2272 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2273 |
rhost = inet_ntoa(so->sin_addr); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2274 |
host_type = tsol_getrhtype(rhost); |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2275 |
if (host_type == SUN_CIPSO) { |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2276 |
return TRUE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2277 |
} |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2278 |
|
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2279 |
return FALSE; |
b949c5054bc4
Initial OpenSolaris release: X-src-20060331
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff
changeset
|
2280 |
} |
606
068c11b419c9
6582489 X11R7.4: Xorg server 1.5.3, Mesa 7.2, and associated driver updates
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
470
diff
changeset
|
2281 |
#endif |