From 3690de9b1b0902d395bc7d071fc05ebc8f75be2b Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Tue, 5 Dec 2006 12:42:12 -0800 Subject: [PATCH 01/45] Bug #9219: Return BadMatch when trying to name the backing pixmap of an unrealized window. Before this change, ProcCompositeNameWindowPixmap would name the screen pixmap if !pWin->realized. --- composite/compext.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/composite/compext.c b/composite/compext.c index a7ad4e2fd..ec5e1fab9 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -269,7 +269,10 @@ ProcCompositeNameWindowPixmap (ClientPtr client) client->errorValue = stuff->window; return BadWindow; } - + + if (!pWin->realized) + return BadMatch; + LEGAL_NEW_RESOURCE (stuff->pixmap, client); cw = GetCompWindow (pWin); From 724f9cb578086e8483a2d0636dd6eb05d664d31c Mon Sep 17 00:00:00 2001 From: Aaron Plattner Date: Tue, 5 Dec 2006 13:44:05 -0800 Subject: [PATCH 02/45] Bug #9219: Use pWin->viewable instead of pWin->realized to catch InputOnly windows too. --- composite/compext.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composite/compext.c b/composite/compext.c index ec5e1fab9..13936fa18 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -270,7 +270,7 @@ ProcCompositeNameWindowPixmap (ClientPtr client) return BadWindow; } - if (!pWin->realized) + if (!pWin->viewable) return BadMatch; LEGAL_NEW_RESOURCE (stuff->pixmap, client); From abe5e079af715713097ab0daad29a3e9f523c398 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Wed, 6 Dec 2006 07:58:03 -0800 Subject: [PATCH 03/45] Update pci.ids to 2006-12-06 from pciids.sf.net --- hw/xfree86/scanpci/pci.ids | 85 +++- hw/xfree86/scanpci/xf86PciStdIds.h | 619 +++++++++++++++++++++++++++-- 2 files changed, 647 insertions(+), 57 deletions(-) diff --git a/hw/xfree86/scanpci/pci.ids b/hw/xfree86/scanpci/pci.ids index c6f565370..d48e25c58 100644 --- a/hw/xfree86/scanpci/pci.ids +++ b/hw/xfree86/scanpci/pci.ids @@ -11,7 +11,7 @@ # This file can be distributed under either the GNU General Public License # (version 2 or higher) or the 3-clause BSD License. # -# Daily snapshot on Tue 2006-10-03 01:05:01 +# Daily snapshot on Wed 2006-12-06 02:05:02 # # Vendors, devices and subsystems. Please keep sorted. @@ -3012,20 +3012,22 @@ 2200 QLA2200 64-bit Fibre Channel Adapter 1077 0002 QLA2200 2300 QLA2300 64-bit Fibre Channel Adapter - 2312 QLA2312 Fibre Channel Adapter + 2312 ISP2312-based 2Gb Fibre Channel to PCI-X HBA 103c 0131 2Gb Fibre Channel - Single port [A7538A] 103c 12ba 2Gb Fibre Channel - Dual port [A6826A] - 2322 QLA2322 Fibre Channel Adapter - 2422 QLA2422 Fibre Channel Adapter + 2322 ISP2322-based 2Gb Fibre Channel to PCI-X HBA + 2422 ISP2422-based 4Gb Fibre Channel to PCI-X HBA 103c 12d7 4Gb Fibre Channel [AB379A] 103c 12dd 4Gb Fibre Channel [AB429A] - 2432 QLA2432 Fibre Channel Adapter - 3010 QLA3010 Network Adapter - 3022 QLA3022 Network Adapter - 4010 QLA4010 iSCSI TOE Adapter - 4022 QLA4022 iSCSI TOE Adapter - 6312 QLA6312 Fibre Channel Adapter - 6322 QLA6322 Fibre Channel Adapter + 2432 ISP2432-based 4Gb Fibre Channel to PCI Express HBA + 3022 ISP4022-based Ethernet NIC + 3032 ISP4032-based Ethernet NIC + 4010 ISP4010-based iSCSI TOE HBA + 4022 ISP4022-based iSCSI TOE HBA + 4032 ISP4032-based iSCSI TOE IPv6 HBA + 5432 SP232-based 4Gb Fibre Channel to PCI Express HBA + 6312 SP202-based 2Gb Fibre Channel to PCI-X HBA + 6322 SP212-based 2Gb Fibre Channel to PCI-X HBA 1078 Cyrix Corporation 0000 5510 [Grappa] 0001 PCI Master @@ -10565,7 +10567,9 @@ 16be 1040 V.9X DSP Data Fax Modem 1043 PRO/Wireless LAN 2100 3B Mini PCI Adapter 103c 08b0 tc1100 tablet + 8086 2522 Samsung P30 integrated WLAN 8086 2527 MIM2000/Centrino + 8086 2581 Toshiba Satellite M10 1048 PRO/10GbE LR Server Adapter 8086 a01f PRO/10GbE LR Server Adapter 8086 a11f PRO/10GbE LR Server Adapter @@ -10583,6 +10587,10 @@ 1051 82801EB/ER (ICH5/ICH5R) integrated LAN Controller 1052 PRO/100 VM Network Connection 1053 PRO/100 VM Network Connection + 1054 PRO/100 VE Network Connection + 1055 PRO/100 VM Network Connection + 1056 PRO/100 VE Network Connection + 1057 PRO/100 VE Network Connection 1059 82551QM Ethernet Controller 105b 82546GB Gigabit Ethernet Controller (Copper) 105e 82571EB Gigabit Ethernet Controller @@ -10673,19 +10681,30 @@ 108c 82573E Gigabit Ethernet Controller (Copper) 108e 82573E KCS (Active Management) 108f Active Management Technology - SOL + 1091 PRO/100 VM Network Connection 1092 PRO/100 VE Network Connection + 1093 PRO/100 VM Network Connection + 1094 PRO/100 VE Network Connection + 1095 PRO/100 VE Network Connection 1096 80003ES2LAN Gigabit Ethernet Controller (Copper) 1097 631xESB/632xESB DPT LAN Controller (Fiber) 1098 80003ES2LAN Gigabit Ethernet Controller (Serdes) 1099 82546GB Gigabit Ethernet Controller (Copper) 8086 1099 PRO/1000 GT Quad Port Server Adapter 109a 82573L Gigabit Ethernet Controller + 1179 ff10 PRO/1000 PL 17aa 2001 ThinkPad T60 17aa 207e Thinkpad X60s 8086 109a PRO/1000 PL Network Connection 109b 82546GB PRO/1000 GF Quad Port Server Adapter + 109e 82597EX 10GbE Ethernet Controller + 8086 a01f PRO/10GbE CX4 Server Adapter + 8086 a11f PRO/10GbE CX4 Server Adapter 10a0 82571EB PRO/1000 AT Quad Port Bypass Adapter 10a1 82571EB PRO/1000 AF Quad Port Bypass Adapter + 10a4 82571EB Gigabit Ethernet Controller + 8086 10a4 PRO/1000 PT Quad Port Server Adapter + 8086 11a4 PRO/1000 PT Quad Port Server Adapter 10b0 82573L PRO/1000 PL Network Connection 10b2 82573V PRO/1000 PM Network Connection 10b3 82573E PRO/1000 PM Network Connection @@ -10699,6 +10718,11 @@ 8086 1093 PRO/1000 PT Desktop Adapter 10ba 80003ES2LAN Gigabit Ethernet Controller (Copper) 10bb 80003ES2LAN Gigabit Ethernet Controller (Serdes) + 10bc 82571EB Gigabit Ethernet Controller (Copper) + 8086 10bc PRO/1000 PT Quad Port LP Server Adapter + 8086 11bc PRO/1000 PT Quad Port LP Server Adapter + 10c4 82562GT 10/100 Network Connection + 10c5 82562G 10/100 Network Connection 1107 PRO/1000 MF Server Adapter (LX) 1130 82815 815 Chipset Host Bridge and Memory Controller Hub 1025 1016 Travelmate 612 TX @@ -10946,6 +10970,9 @@ 1a31 82845 845 (Brookdale) Chipset AGP Bridge 1a38 5000 Series Chipset DMA Engine 1a48 PRO/10GbE SR Server Adapter + 1b48 82597EX 10GbE Ethernet Controller + 8086 a01f PRO/10GbE LR Server Adapter + 8086 a11f PRO/10GbE LR Server Adapter 2410 82801AA ISA Bridge (LPC) 2411 82801AA IDE 2412 82801AA USB @@ -10998,6 +11025,7 @@ 147b 0507 TH7II-RAID 8086 4532 D815EEA2 mainboard 2445 82801BA/BAM AC'97 Audio + 0e11 000b Compaq Deskpro EN Audio 0e11 0088 Evo D500 1014 01c6 Netvista A40/A40p 1025 1016 Travelmate 612 TX @@ -11010,6 +11038,7 @@ 104d 80df Vaio PCG-FX403 2448 82801 Mobile PCI Bridge 103c 099c NX6110/NC6120 + 144d c00c P30 notebook 1734 1055 Amilo M1420 2449 82801BA/BAM/CA/CAM Ethernet Controller 0e11 0012 EtherExpress PRO/100 VM @@ -11129,6 +11158,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 1462 5800 845PE Max (MS-6580) 1509 2990 Averatec 5110H laptop 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) @@ -11160,6 +11190,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 1462 5800 845PE Max (MS-6580) 1509 2990 Averatec 5110H 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) @@ -11177,6 +11208,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 1458 a002 GA-8PE667 Ultra 1462 5800 845PE Max (MS-6580) 1734 1005 D1451 (SCENIC N300, i845GV) Sigmatel STAC9750T @@ -11190,6 +11222,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 24c7 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 1014 0267 NetVista A30p 1014 052d Thinkpad R50e model 1634 @@ -11201,6 +11234,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 1462 5800 845PE Max (MS-6580) 1509 2990 Averatec 5110H 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) @@ -11215,6 +11249,7 @@ 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet 1071 8160 MIM2000 + 144d c00c P30 notebook 1734 1055 Amilo M1420 8086 4541 Latitude D400 24cb 82801DB (ICH4) IDE Controller @@ -11225,6 +11260,7 @@ 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) 4c53 1090 Cx9 / Vx9 mainboard 24cc 82801DBM (ICH4-M) LPC Interface Bridge + 144d c00c P30 notebook 1734 1055 Amilo M1420 24cd 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller 1014 0267 NetVista A30p @@ -11240,6 +11276,7 @@ 103c 08b0 tc1100 tablet 1071 8160 MIM2000 1179 ff00 Satellite 2430 + 144d c00c P30 notebook 1462 3981 845PE Max (MS-6580) 1509 1968 Averatec 5110H 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) @@ -11278,6 +11315,7 @@ 1014 02ed xSeries server mainboard 1028 0156 Precision 360 1028 0169 Precision 470 + 103c 12bc d330 uT 1043 80a6 P4P800 Mainboard 1458 24d2 GA-8IPE1000 Pro2 motherboard (865PE) 1462 7280 865PE Neo2 (MS-6728) @@ -11304,6 +11342,7 @@ 8086 4c43 Desktop Board D865GLC 8086 524c D865PERL mainboard 24d5 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller + 100a 147b Abit IS7-E motherboard 1028 0169 Precision 470 103c 006a NX9500 103c 12bc d330 uT @@ -11427,6 +11466,7 @@ 1734 1004 D1451 Mainboard (SCENIC N300, i845GV) 2570 82865G/PE/P DRAM Controller/Host-Hub Interface 103c 006a NX9500 + 103c 12bc d330 uT 1043 80f2 P5P800-MX Mainboard 1458 2570 GA-8IPE1000 Pro2 motherboard (865PE) 2571 82865G/PE/P PCI to AGP Controller @@ -11533,7 +11573,7 @@ 25e5 5000 Series Chipset PCI Express x4 Port 5 25e6 5000 Series Chipset PCI Express x4 Port 6 25e7 5000 Series Chipset PCI Express x4 Port 7 - 25f0 5000 Series Chipset Error Reporting Registers + 25f0 5000 Series Chipset FSB Registers 25f1 5000 Series Chipset Reserved Registers 25f3 5000 Series Chipset Reserved Registers 25f5 5000 Series Chipset FBD Registers @@ -11554,7 +11594,7 @@ 2609 E8500/E8501 PCI Express x8 Port B 260a E8500/E8501 PCI Express x8 Port A 260c E8500/E8501 IMI Registers - 2610 E8500/E8501 Front Side Bus, Boot, and Interrupt Registers + 2610 E8500/E8501 FSB Registers 2611 E8500/E8501 Address Mapping Registers 2612 E8500/E8501 RAS Registers 2613 E8500/E8501 Reserved Registers @@ -11713,6 +11753,7 @@ 107b 5048 E4500 8086 544e DeskTop Board D945GTP 27b9 82801GBM (ICH7-M) LPC Interface Bridge + 10f7 8338 Panasonic CF-Y5 laptop 17aa 2009 ThinkPad T60/R60 series 27bd 82801GHM (ICH7-M DH) LPC Interface Bridge 27c0 82801GB/GR/GH (ICH7 Family) Serial ATA Storage Controller IDE @@ -11749,9 +11790,12 @@ 27d6 82801G (ICH7 Family) PCI Express Port 4 27d8 82801G (ICH7 Family) High Definition Audio Controller 107b 5048 E4500 + 10f7 8338 Panasonic CF-Y5 laptop + 1179 ff31 Toshiba America Information Systems:AC97 Data Fax SoftModem with SmartCP 152d 0753 Softmodem 17aa 2010 ThinkPad T60/R60 series 27da 82801G (ICH7 Family) SMBus Controller + 10f7 8338 Panasonic CF-Y5 laptop 17aa 200f ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP 27dc 82801G (ICH7 Family) LAN Controller @@ -11760,6 +11804,7 @@ 27de 82801G (ICH7 Family) AC'97 Audio Controller 27df 82801G (ICH7 Family) IDE Controller 107b 5048 E4500 + 10f7 8338 Panasonic CF-Y5 laptop 17aa 200c Thinkpad R60e model 0657 8086 544e DeskTop Board D945GTP 27e0 82801GR/GH/GHM (ICH7 Family) PCI Express Port 5 @@ -11770,21 +11815,28 @@ 2814 82801HO (ICH8DO) LPC Interface Controller 2815 Mobile LPC Interface Controller 2820 82801H (ICH8 Family) 4 port SATA IDE Controller - 2821 82801HB (ICH8) SATA AHCI Controller + 1462 7235 P965 Neo MS-7235 mainboard + 2821 82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller 2822 82801HR/HO/HH (ICH8R/DO/DH) SATA RAID Controller - 2824 82801HR/HO/HH (ICH8R/DO/DH) SATA AHCI Controller + 2824 82801HB (ICH8) 4 port SATA AHCI Controller 2825 82801H (ICH8 Family) 2 port SATA IDE Controller + 1462 7235 P965 Neo MS-7235 mainboard 2828 Mobile SATA IDE Controller 2829 Mobile SATA AHCI Controller 282a Mobile SATA RAID Controller 2830 82801H (ICH8 Family) USB UHCI #1 + 1462 7235 P965 Neo MS-7235 mainboard 2831 82801H (ICH8 Family) USB UHCI #2 + 1462 7235 P965 Neo MS-7235 mainboard 2832 82801H (ICH8 Family) USB UHCI #3 2834 82801H (ICH8 Family) USB UHCI #4 + 1462 7235 P965 Neo MS-7235 mainboard 2835 82801H (ICH8 Family) USB UHCI #5 2836 82801H (ICH8 Family) USB2 EHCI #1 + 1462 7235 P965 Neo MS-7235 mainboard 283a 82801H (ICH8 Family) USB2 EHCI #2 283e 82801H (ICH8 Family) SMBus Controller + 1462 7235 P965 Neo MS-7235 mainboard 283f 82801H (ICH8 Family) PCI Express Port 1 2841 82801H (ICH8 Family) PCI Express Port 2 2843 82801H (ICH8 Family) PCI Express Port 3 @@ -11831,12 +11883,15 @@ 2a07 Mobile KT Controller 3092 Integrated RAID 3200 GD31244 PCI-X SATA HBA + 1775 c200 C2K onboard SATA host bus adapter 3340 82855PM Processor to I/O Controller 1025 005a TravelMate 290 103c 088c NC8000 laptop 103c 0890 NC6000 laptop 103c 08b0 tc1100 tablet + 144d c00c P30 notebook 3341 82855PM Processor to AGP Controller + 144d c00c P30 notebook 3500 6311ESB/6321ESB PCI Express Upstream Port 3501 6310ESB PCI Express Upstream Port 3504 6311ESB/6321ESB I/OxAPIC Interrupt Controller diff --git a/hw/xfree86/scanpci/xf86PciStdIds.h b/hw/xfree86/scanpci/xf86PciStdIds.h index d86d686c8..0cf8d4e55 100644 --- a/hw/xfree86/scanpci/xf86PciStdIds.h +++ b/hw/xfree86/scanpci/xf86PciStdIds.h @@ -5712,7 +5712,7 @@ static const char pci_device_1077_2200[] = "QLA2200 64-bit Fibre Channel Adapter static const char pci_subsys_1077_2200_1077_0002[] = "QLA2200"; #endif static const char pci_device_1077_2300[] = "QLA2300 64-bit Fibre Channel Adapter"; -static const char pci_device_1077_2312[] = "QLA2312 Fibre Channel Adapter"; +static const char pci_device_1077_2312[] = "ISP2312-based 2Gb Fibre Channel to PCI-X HBA"; #endif #ifdef INIT_SUBSYS_INFO static const char pci_subsys_1077_2312_103c_0131[] = "2Gb Fibre Channel - Single port [A7538A]"; @@ -5723,8 +5723,8 @@ static const char pci_subsys_1077_2312_103c_0131[] = "2Gb Fibre Channel - Single static const char pci_subsys_1077_2312_103c_12ba[] = "2Gb Fibre Channel - Dual port [A6826A]"; #endif #ifdef VENDOR_INCLUDE_NONVIDEO -static const char pci_device_1077_2322[] = "QLA2322 Fibre Channel Adapter"; -static const char pci_device_1077_2422[] = "QLA2422 Fibre Channel Adapter"; +static const char pci_device_1077_2322[] = "ISP2322-based 2Gb Fibre Channel to PCI-X HBA"; +static const char pci_device_1077_2422[] = "ISP2422-based 4Gb Fibre Channel to PCI-X HBA"; #endif #ifdef INIT_SUBSYS_INFO static const char pci_subsys_1077_2422_103c_12d7[] = "4Gb Fibre Channel [AB379A]"; @@ -5735,13 +5735,15 @@ static const char pci_subsys_1077_2422_103c_12d7[] = "4Gb Fibre Channel [AB379A] static const char pci_subsys_1077_2422_103c_12dd[] = "4Gb Fibre Channel [AB429A]"; #endif #ifdef VENDOR_INCLUDE_NONVIDEO -static const char pci_device_1077_2432[] = "QLA2432 Fibre Channel Adapter"; -static const char pci_device_1077_3010[] = "QLA3010 Network Adapter"; -static const char pci_device_1077_3022[] = "QLA3022 Network Adapter"; -static const char pci_device_1077_4010[] = "QLA4010 iSCSI TOE Adapter"; -static const char pci_device_1077_4022[] = "QLA4022 iSCSI TOE Adapter"; -static const char pci_device_1077_6312[] = "QLA6312 Fibre Channel Adapter"; -static const char pci_device_1077_6322[] = "QLA6322 Fibre Channel Adapter"; +static const char pci_device_1077_2432[] = "ISP2432-based 4Gb Fibre Channel to PCI Express HBA"; +static const char pci_device_1077_3022[] = "ISP4022-based Ethernet NIC"; +static const char pci_device_1077_3032[] = "ISP4032-based Ethernet NIC"; +static const char pci_device_1077_4010[] = "ISP4010-based iSCSI TOE HBA"; +static const char pci_device_1077_4022[] = "ISP4022-based iSCSI TOE HBA"; +static const char pci_device_1077_4032[] = "ISP4032-based iSCSI TOE IPv6 HBA"; +static const char pci_device_1077_5432[] = "SP232-based 4Gb Fibre Channel to PCI Express HBA"; +static const char pci_device_1077_6312[] = "SP202-based 2Gb Fibre Channel to PCI-X HBA"; +static const char pci_device_1077_6322[] = "SP212-based 2Gb Fibre Channel to PCI-X HBA"; #endif static const char pci_vendor_1078[] = "Cyrix Corporation"; static const char pci_device_1078_0000[] = "5510 [Grappa]"; @@ -20449,10 +20451,8 @@ static const char pci_device_19e7_1003[] = "STIX - 2 Port T1/E1 Card"; static const char pci_device_19e7_1004[] = "STIX - 4 Port T1/E1 Card"; static const char pci_device_19e7_1005[] = "STIX - 4 Port FXS Card"; #endif -#ifdef VENDOR_INCLUDE_NONVIDEO static const char pci_vendor_1a03[] = "ASPEED Technology, Inc."; static const char pci_device_1a03_2000[] = "AST2000"; -#endif #ifdef VENDOR_INCLUDE_NONVIDEO static const char pci_vendor_1a08[] = "Sierra semiconductor"; static const char pci_device_1a08_0000[] = "SC15064"; @@ -21670,8 +21670,14 @@ static const char pci_device_8086_1043[] = "PRO/Wireless LAN 2100 3B Mini PCI Ad static const char pci_subsys_8086_1043_103c_08b0[] = "tc1100 tablet"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_1043_8086_2522[] = "Samsung P30 integrated WLAN"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_1043_8086_2527[] = "MIM2000/Centrino"; #endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_1043_8086_2581[] = "Toshiba Satellite M10"; +#endif static const char pci_device_8086_1048[] = "PRO/10GbE LR Server Adapter"; #ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_1048_8086_a01f[] = "PRO/10GbE LR Server Adapter"; @@ -21703,6 +21709,10 @@ static const char pci_subsys_8086_1050_8086_3427[] = "S875WP1-E mainboard"; static const char pci_device_8086_1051[] = "82801EB/ER (ICH5/ICH5R) integrated LAN Controller"; static const char pci_device_8086_1052[] = "PRO/100 VM Network Connection"; static const char pci_device_8086_1053[] = "PRO/100 VM Network Connection"; +static const char pci_device_8086_1054[] = "PRO/100 VE Network Connection"; +static const char pci_device_8086_1055[] = "PRO/100 VM Network Connection"; +static const char pci_device_8086_1056[] = "PRO/100 VE Network Connection"; +static const char pci_device_8086_1057[] = "PRO/100 VE Network Connection"; static const char pci_device_8086_1059[] = "82551QM Ethernet Controller"; static const char pci_device_8086_105b[] = "82546GB Gigabit Ethernet Controller (Copper)"; static const char pci_device_8086_105e[] = "82571EB Gigabit Ethernet Controller"; @@ -21897,7 +21907,11 @@ static const char pci_device_8086_108b[] = "82573V Gigabit Ethernet Controller ( static const char pci_device_8086_108c[] = "82573E Gigabit Ethernet Controller (Copper)"; static const char pci_device_8086_108e[] = "82573E KCS (Active Management)"; static const char pci_device_8086_108f[] = "Active Management Technology - SOL"; +static const char pci_device_8086_1091[] = "PRO/100 VM Network Connection"; static const char pci_device_8086_1092[] = "PRO/100 VE Network Connection"; +static const char pci_device_8086_1093[] = "PRO/100 VM Network Connection"; +static const char pci_device_8086_1094[] = "PRO/100 VE Network Connection"; +static const char pci_device_8086_1095[] = "PRO/100 VE Network Connection"; static const char pci_device_8086_1096[] = "80003ES2LAN Gigabit Ethernet Controller (Copper)"; static const char pci_device_8086_1097[] = "631xESB/632xESB DPT LAN Controller (Fiber)"; static const char pci_device_8086_1098[] = "80003ES2LAN Gigabit Ethernet Controller (Serdes)"; @@ -21907,6 +21921,9 @@ static const char pci_subsys_8086_1099_8086_1099[] = "PRO/1000 GT Quad Port Serv #endif static const char pci_device_8086_109a[] = "82573L Gigabit Ethernet Controller"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_109a_1179_ff10[] = "PRO/1000 PL"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_109a_17aa_2001[] = "ThinkPad T60"; #endif #ifdef INIT_SUBSYS_INFO @@ -21916,8 +21933,22 @@ static const char pci_subsys_8086_109a_17aa_207e[] = "Thinkpad X60s"; static const char pci_subsys_8086_109a_8086_109a[] = "PRO/1000 PL Network Connection"; #endif static const char pci_device_8086_109b[] = "82546GB PRO/1000 GF Quad Port Server Adapter"; +static const char pci_device_8086_109e[] = "82597EX 10GbE Ethernet Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_109e_8086_a01f[] = "PRO/10GbE CX4 Server Adapter"; +#endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_109e_8086_a11f[] = "PRO/10GbE CX4 Server Adapter"; +#endif static const char pci_device_8086_10a0[] = "82571EB PRO/1000 AT Quad Port Bypass Adapter"; static const char pci_device_8086_10a1[] = "82571EB PRO/1000 AF Quad Port Bypass Adapter"; +static const char pci_device_8086_10a4[] = "82571EB Gigabit Ethernet Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_10a4_8086_10a4[] = "PRO/1000 PT Quad Port Server Adapter"; +#endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_10a4_8086_11a4[] = "PRO/1000 PT Quad Port Server Adapter"; +#endif static const char pci_device_8086_10b0[] = "82573L PRO/1000 PL Network Connection"; static const char pci_device_8086_10b2[] = "82573V PRO/1000 PM Network Connection"; static const char pci_device_8086_10b3[] = "82573E PRO/1000 PM Network Connection"; @@ -21941,6 +21972,15 @@ static const char pci_subsys_8086_10b9_8086_1093[] = "PRO/1000 PT Desktop Adapte #endif static const char pci_device_8086_10ba[] = "80003ES2LAN Gigabit Ethernet Controller (Copper)"; static const char pci_device_8086_10bb[] = "80003ES2LAN Gigabit Ethernet Controller (Serdes)"; +static const char pci_device_8086_10bc[] = "82571EB Gigabit Ethernet Controller (Copper)"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_10bc_8086_10bc[] = "PRO/1000 PT Quad Port LP Server Adapter"; +#endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_10bc_8086_11bc[] = "PRO/1000 PT Quad Port LP Server Adapter"; +#endif +static const char pci_device_8086_10c4[] = "82562GT 10/100 Network Connection"; +static const char pci_device_8086_10c5[] = "82562G 10/100 Network Connection"; static const char pci_device_8086_1107[] = "PRO/1000 MF Server Adapter (LX)"; static const char pci_device_8086_1130[] = "82815 815 Chipset Host Bridge and Memory Controller Hub"; #ifdef INIT_SUBSYS_INFO @@ -22587,6 +22627,13 @@ static const char pci_subsys_8086_1a30_1028_010e[] = "Optiplex GX240"; static const char pci_device_8086_1a31[] = "82845 845 (Brookdale) Chipset AGP Bridge"; static const char pci_device_8086_1a38[] = "5000 Series Chipset DMA Engine"; static const char pci_device_8086_1a48[] = "PRO/10GbE SR Server Adapter"; +static const char pci_device_8086_1b48[] = "82597EX 10GbE Ethernet Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_1b48_8086_a01f[] = "PRO/10GbE LR Server Adapter"; +#endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_1b48_8086_a11f[] = "PRO/10GbE LR Server Adapter"; +#endif static const char pci_device_8086_2410[] = "82801AA ISA Bridge (LPC)"; static const char pci_device_8086_2411[] = "82801AA IDE"; static const char pci_device_8086_2412[] = "82801AA USB"; @@ -22706,6 +22753,9 @@ static const char pci_subsys_8086_2444_8086_4532[] = "D815EEA2 mainboard"; #endif static const char pci_device_8086_2445[] = "82801BA/BAM AC'97 Audio"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2445_0e11_000b[] = "Compaq Deskpro EN Audio"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_2445_0e11_0088[] = "Evo D500"; #endif #ifdef INIT_SUBSYS_INFO @@ -22738,6 +22788,9 @@ static const char pci_device_8086_2448[] = "82801 Mobile PCI Bridge"; static const char pci_subsys_8086_2448_103c_099c[] = "NX6110/NC6120"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2448_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_2448_1734_1055[] = "Amilo M1420"; #endif static const char pci_device_8086_2449[] = "82801BA/BAM/CA/CAM Ethernet Controller"; @@ -23045,6 +23098,9 @@ static const char pci_subsys_8086_24c2_103c_08b0[] = "tc1100 tablet"; static const char pci_subsys_8086_24c2_1071_8160[] = "MIM2000"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24c2_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c2_1462_5800[] = "845PE Max (MS-6580)"; #endif #ifdef INIT_SUBSYS_INFO @@ -23134,6 +23190,9 @@ static const char pci_subsys_8086_24c4_103c_08b0[] = "tc1100 tablet"; static const char pci_subsys_8086_24c4_1071_8160[] = "MIM2000"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24c4_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c4_1462_5800[] = "845PE Max (MS-6580)"; #endif #ifdef INIT_SUBSYS_INFO @@ -23183,6 +23242,9 @@ static const char pci_subsys_8086_24c5_103c_08b0[] = "tc1100 tablet"; static const char pci_subsys_8086_24c5_1071_8160[] = "MIM2000"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24c5_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c5_1458_a002[] = "GA-8PE667 Ultra"; #endif #ifdef INIT_SUBSYS_INFO @@ -23219,6 +23281,9 @@ static const char pci_subsys_8086_24c6_103c_08b0[] = "tc1100 tablet"; #ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c6_1071_8160[] = "MIM2000"; #endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24c6_144d_c00c[] = "P30 notebook"; +#endif static const char pci_device_8086_24c7[] = "82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3"; #ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c7_1014_0267[] = "NetVista A30p"; @@ -23251,6 +23316,9 @@ static const char pci_subsys_8086_24c7_103c_08b0[] = "tc1100 tablet"; static const char pci_subsys_8086_24c7_1071_8160[] = "MIM2000"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24c7_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24c7_1462_5800[] = "845PE Max (MS-6580)"; #endif #ifdef INIT_SUBSYS_INFO @@ -23291,6 +23359,9 @@ static const char pci_subsys_8086_24ca_103c_08b0[] = "tc1100 tablet"; static const char pci_subsys_8086_24ca_1071_8160[] = "MIM2000"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24ca_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24ca_1734_1055[] = "Amilo M1420"; #endif #ifdef INIT_SUBSYS_INFO @@ -23317,6 +23388,9 @@ static const char pci_subsys_8086_24cb_4c53_1090[] = "Cx9 / Vx9 mainboard"; #endif static const char pci_device_8086_24cc[] = "82801DBM (ICH4-M) LPC Interface Bridge"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24cc_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24cc_1734_1055[] = "Amilo M1420"; #endif static const char pci_device_8086_24cd[] = "82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller"; @@ -23360,6 +23434,9 @@ static const char pci_subsys_8086_24cd_1071_8160[] = "MIM2000"; static const char pci_subsys_8086_24cd_1179_ff00[] = "Satellite 2430"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24cd_144d_c00c[] = "P30 notebook"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24cd_1462_3981[] = "845PE Max (MS-6580)"; #endif #ifdef INIT_SUBSYS_INFO @@ -23466,6 +23543,9 @@ static const char pci_subsys_8086_24d3_1028_0156[] = "Precision 360"; static const char pci_subsys_8086_24d3_1028_0169[] = "Precision 470"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24d3_103c_12bc[] = "d330 uT"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24d3_1043_80a6[] = "P4P800 Mainboard"; #endif #ifdef INIT_SUBSYS_INFO @@ -23540,6 +23620,9 @@ static const char pci_subsys_8086_24d4_8086_524c[] = "D865PERL mainboard"; #endif static const char pci_device_8086_24d5[] = "82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_24d5_100a_147b[] = "Abit IS7-E motherboard"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_24d5_1028_0169[] = "Precision 470"; #endif #ifdef INIT_SUBSYS_INFO @@ -23835,6 +23918,9 @@ static const char pci_device_8086_2570[] = "82865G/PE/P DRAM Controller/Host-Hub static const char pci_subsys_8086_2570_103c_006a[] = "NX9500"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2570_103c_12bc[] = "d330 uT"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_2570_1043_80f2[] = "P5P800-MX Mainboard"; #endif #ifdef INIT_SUBSYS_INFO @@ -24068,7 +24154,7 @@ static const char pci_device_8086_25e4[] = "5000 Series Chipset PCI Express x4 P static const char pci_device_8086_25e5[] = "5000 Series Chipset PCI Express x4 Port 5"; static const char pci_device_8086_25e6[] = "5000 Series Chipset PCI Express x4 Port 6"; static const char pci_device_8086_25e7[] = "5000 Series Chipset PCI Express x4 Port 7"; -static const char pci_device_8086_25f0[] = "5000 Series Chipset Error Reporting Registers"; +static const char pci_device_8086_25f0[] = "5000 Series Chipset FSB Registers"; static const char pci_device_8086_25f1[] = "5000 Series Chipset Reserved Registers"; static const char pci_device_8086_25f3[] = "5000 Series Chipset Reserved Registers"; static const char pci_device_8086_25f5[] = "5000 Series Chipset FBD Registers"; @@ -24089,7 +24175,7 @@ static const char pci_device_8086_2608[] = "E8500/E8501 PCI Express x8 Port C"; static const char pci_device_8086_2609[] = "E8500/E8501 PCI Express x8 Port B"; static const char pci_device_8086_260a[] = "E8500/E8501 PCI Express x8 Port A"; static const char pci_device_8086_260c[] = "E8500/E8501 IMI Registers"; -static const char pci_device_8086_2610[] = "E8500/E8501 Front Side Bus, Boot, and Interrupt Registers"; +static const char pci_device_8086_2610[] = "E8500/E8501 FSB Registers"; static const char pci_device_8086_2611[] = "E8500/E8501 Address Mapping Registers"; static const char pci_device_8086_2612[] = "E8500/E8501 RAS Registers"; static const char pci_device_8086_2613[] = "E8500/E8501 Reserved Registers"; @@ -24400,6 +24486,9 @@ static const char pci_subsys_8086_27b8_8086_544e[] = "DeskTop Board D945GTP"; #endif static const char pci_device_8086_27b9[] = "82801GBM (ICH7-M) LPC Interface Bridge"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_27b9_10f7_8338[] = "Panasonic CF-Y5 laptop"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_27b9_17aa_2009[] = "ThinkPad T60/R60 series"; #endif static const char pci_device_8086_27bd[] = "82801GHM (ICH7-M DH) LPC Interface Bridge"; @@ -24474,6 +24563,12 @@ static const char pci_device_8086_27d8[] = "82801G (ICH7 Family) High Definition static const char pci_subsys_8086_27d8_107b_5048[] = "E4500"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_27d8_10f7_8338[] = "Panasonic CF-Y5 laptop"; +#endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_27d8_1179_ff31[] = "Toshiba America Information Systems:AC97 Data Fax SoftModem with SmartCP"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_27d8_152d_0753[] = "Softmodem"; #endif #ifdef INIT_SUBSYS_INFO @@ -24481,6 +24576,9 @@ static const char pci_subsys_8086_27d8_17aa_2010[] = "ThinkPad T60/R60 series"; #endif static const char pci_device_8086_27da[] = "82801G (ICH7 Family) SMBus Controller"; #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_27da_10f7_8338[] = "Panasonic CF-Y5 laptop"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_27da_17aa_200f[] = "ThinkPad T60/R60 series"; #endif #ifdef INIT_SUBSYS_INFO @@ -24497,6 +24595,9 @@ static const char pci_device_8086_27df[] = "82801G (ICH7 Family) IDE Controller" static const char pci_subsys_8086_27df_107b_5048[] = "E4500"; #endif #ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_27df_10f7_8338[] = "Panasonic CF-Y5 laptop"; +#endif +#ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_27df_17aa_200c[] = "Thinkpad R60e model 0657"; #endif #ifdef INIT_SUBSYS_INFO @@ -24510,21 +24611,42 @@ static const char pci_device_8086_2812[] = "82801HH (ICH8DH) LPC Interface Contr static const char pci_device_8086_2814[] = "82801HO (ICH8DO) LPC Interface Controller"; static const char pci_device_8086_2815[] = "Mobile LPC Interface Controller"; static const char pci_device_8086_2820[] = "82801H (ICH8 Family) 4 port SATA IDE Controller"; -static const char pci_device_8086_2821[] = "82801HB (ICH8) SATA AHCI Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2820_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif +static const char pci_device_8086_2821[] = "82801HR/HO/HH (ICH8R/DO/DH) 6 port SATA AHCI Controller"; static const char pci_device_8086_2822[] = "82801HR/HO/HH (ICH8R/DO/DH) SATA RAID Controller"; -static const char pci_device_8086_2824[] = "82801HR/HO/HH (ICH8R/DO/DH) SATA AHCI Controller"; +static const char pci_device_8086_2824[] = "82801HB (ICH8) 4 port SATA AHCI Controller"; static const char pci_device_8086_2825[] = "82801H (ICH8 Family) 2 port SATA IDE Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2825_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_2828[] = "Mobile SATA IDE Controller"; static const char pci_device_8086_2829[] = "Mobile SATA AHCI Controller"; static const char pci_device_8086_282a[] = "Mobile SATA RAID Controller"; static const char pci_device_8086_2830[] = "82801H (ICH8 Family) USB UHCI #1"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2830_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_2831[] = "82801H (ICH8 Family) USB UHCI #2"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2831_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_2832[] = "82801H (ICH8 Family) USB UHCI #3"; static const char pci_device_8086_2834[] = "82801H (ICH8 Family) USB UHCI #4"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2834_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_2835[] = "82801H (ICH8 Family) USB UHCI #5"; static const char pci_device_8086_2836[] = "82801H (ICH8 Family) USB2 EHCI #1"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_2836_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_283a[] = "82801H (ICH8 Family) USB2 EHCI #2"; static const char pci_device_8086_283e[] = "82801H (ICH8 Family) SMBus Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_283e_1462_7235[] = "P965 Neo MS-7235 mainboard"; +#endif static const char pci_device_8086_283f[] = "82801H (ICH8 Family) PCI Express Port 1"; static const char pci_device_8086_2841[] = "82801H (ICH8 Family) PCI Express Port 2"; static const char pci_device_8086_2843[] = "82801H (ICH8 Family) PCI Express Port 3"; @@ -24571,6 +24693,9 @@ static const char pci_device_8086_2a06[] = "Mobile PT IDER Controller"; static const char pci_device_8086_2a07[] = "Mobile KT Controller"; static const char pci_device_8086_3092[] = "Integrated RAID"; static const char pci_device_8086_3200[] = "GD31244 PCI-X SATA HBA"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_3200_1775_c200[] = "C2K onboard SATA host bus adapter"; +#endif static const char pci_device_8086_3340[] = "82855PM Processor to I/O Controller"; #ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_3340_1025_005a[] = "TravelMate 290"; @@ -24584,7 +24709,13 @@ static const char pci_subsys_8086_3340_103c_0890[] = "NC6000 laptop"; #ifdef INIT_SUBSYS_INFO static const char pci_subsys_8086_3340_103c_08b0[] = "tc1100 tablet"; #endif +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_3340_144d_c00c[] = "P30 notebook"; +#endif static const char pci_device_8086_3341[] = "82855PM Processor to AGP Controller"; +#ifdef INIT_SUBSYS_INFO +static const char pci_subsys_8086_3341_144d_c00c[] = "P30 notebook"; +#endif static const char pci_device_8086_3500[] = "6311ESB/6321ESB PCI Express Upstream Port"; static const char pci_device_8086_3501[] = "6310ESB PCI Express Upstream Port"; static const char pci_device_8086_3504[] = "6311ESB/6321ESB I/OxAPIC Interrupt Controller"; @@ -40853,10 +40984,18 @@ static const pciSubsystemInfo pci_ss_info_8086_1043_103c_08b0 = {0x103c, 0x08b0, pci_subsys_8086_1043_103c_08b0, 0}; #undef pci_ss_info_103c_08b0 #define pci_ss_info_103c_08b0 pci_ss_info_8086_1043_103c_08b0 +static const pciSubsystemInfo pci_ss_info_8086_1043_8086_2522 = + {0x8086, 0x2522, pci_subsys_8086_1043_8086_2522, 0}; +#undef pci_ss_info_8086_2522 +#define pci_ss_info_8086_2522 pci_ss_info_8086_1043_8086_2522 static const pciSubsystemInfo pci_ss_info_8086_1043_8086_2527 = {0x8086, 0x2527, pci_subsys_8086_1043_8086_2527, 0}; #undef pci_ss_info_8086_2527 #define pci_ss_info_8086_2527 pci_ss_info_8086_1043_8086_2527 +static const pciSubsystemInfo pci_ss_info_8086_1043_8086_2581 = + {0x8086, 0x2581, pci_subsys_8086_1043_8086_2581, 0}; +#undef pci_ss_info_8086_2581 +#define pci_ss_info_8086_2581 pci_ss_info_8086_1043_8086_2581 static const pciSubsystemInfo pci_ss_info_8086_1048_8086_a01f = {0x8086, 0xa01f, pci_subsys_8086_1048_8086_a01f, 0}; #undef pci_ss_info_8086_a01f @@ -41097,6 +41236,10 @@ static const pciSubsystemInfo pci_ss_info_8086_1099_8086_1099 = {0x8086, 0x1099, pci_subsys_8086_1099_8086_1099, 0}; #undef pci_ss_info_8086_1099 #define pci_ss_info_8086_1099 pci_ss_info_8086_1099_8086_1099 +static const pciSubsystemInfo pci_ss_info_8086_109a_1179_ff10 = + {0x1179, 0xff10, pci_subsys_8086_109a_1179_ff10, 0}; +#undef pci_ss_info_1179_ff10 +#define pci_ss_info_1179_ff10 pci_ss_info_8086_109a_1179_ff10 static const pciSubsystemInfo pci_ss_info_8086_109a_17aa_2001 = {0x17aa, 0x2001, pci_subsys_8086_109a_17aa_2001, 0}; #undef pci_ss_info_17aa_2001 @@ -41109,6 +41252,22 @@ static const pciSubsystemInfo pci_ss_info_8086_109a_8086_109a = {0x8086, 0x109a, pci_subsys_8086_109a_8086_109a, 0}; #undef pci_ss_info_8086_109a #define pci_ss_info_8086_109a pci_ss_info_8086_109a_8086_109a +static const pciSubsystemInfo pci_ss_info_8086_109e_8086_a01f = + {0x8086, 0xa01f, pci_subsys_8086_109e_8086_a01f, 0}; +#undef pci_ss_info_8086_a01f +#define pci_ss_info_8086_a01f pci_ss_info_8086_109e_8086_a01f +static const pciSubsystemInfo pci_ss_info_8086_109e_8086_a11f = + {0x8086, 0xa11f, pci_subsys_8086_109e_8086_a11f, 0}; +#undef pci_ss_info_8086_a11f +#define pci_ss_info_8086_a11f pci_ss_info_8086_109e_8086_a11f +static const pciSubsystemInfo pci_ss_info_8086_10a4_8086_10a4 = + {0x8086, 0x10a4, pci_subsys_8086_10a4_8086_10a4, 0}; +#undef pci_ss_info_8086_10a4 +#define pci_ss_info_8086_10a4 pci_ss_info_8086_10a4_8086_10a4 +static const pciSubsystemInfo pci_ss_info_8086_10a4_8086_11a4 = + {0x8086, 0x11a4, pci_subsys_8086_10a4_8086_11a4, 0}; +#undef pci_ss_info_8086_11a4 +#define pci_ss_info_8086_11a4 pci_ss_info_8086_10a4_8086_11a4 static const pciSubsystemInfo pci_ss_info_8086_10b5_103c_3109 = {0x103c, 0x3109, pci_subsys_8086_10b5_103c_3109, 0}; #undef pci_ss_info_103c_3109 @@ -41129,6 +41288,14 @@ static const pciSubsystemInfo pci_ss_info_8086_10b9_8086_1093 = {0x8086, 0x1093, pci_subsys_8086_10b9_8086_1093, 0}; #undef pci_ss_info_8086_1093 #define pci_ss_info_8086_1093 pci_ss_info_8086_10b9_8086_1093 +static const pciSubsystemInfo pci_ss_info_8086_10bc_8086_10bc = + {0x8086, 0x10bc, pci_subsys_8086_10bc_8086_10bc, 0}; +#undef pci_ss_info_8086_10bc +#define pci_ss_info_8086_10bc pci_ss_info_8086_10bc_8086_10bc +static const pciSubsystemInfo pci_ss_info_8086_10bc_8086_11bc = + {0x8086, 0x11bc, pci_subsys_8086_10bc_8086_11bc, 0}; +#undef pci_ss_info_8086_11bc +#define pci_ss_info_8086_11bc pci_ss_info_8086_10bc_8086_11bc static const pciSubsystemInfo pci_ss_info_8086_1130_1025_1016 = {0x1025, 0x1016, pci_subsys_8086_1130_1025_1016, 0}; #undef pci_ss_info_1025_1016 @@ -41929,6 +42096,14 @@ static const pciSubsystemInfo pci_ss_info_8086_1a30_1028_010e = {0x1028, 0x010e, pci_subsys_8086_1a30_1028_010e, 0}; #undef pci_ss_info_1028_010e #define pci_ss_info_1028_010e pci_ss_info_8086_1a30_1028_010e +static const pciSubsystemInfo pci_ss_info_8086_1b48_8086_a01f = + {0x8086, 0xa01f, pci_subsys_8086_1b48_8086_a01f, 0}; +#undef pci_ss_info_8086_a01f +#define pci_ss_info_8086_a01f pci_ss_info_8086_1b48_8086_a01f +static const pciSubsystemInfo pci_ss_info_8086_1b48_8086_a11f = + {0x8086, 0xa11f, pci_subsys_8086_1b48_8086_a11f, 0}; +#undef pci_ss_info_8086_a11f +#define pci_ss_info_8086_a11f pci_ss_info_8086_1b48_8086_a11f static const pciSubsystemInfo pci_ss_info_8086_2415_1028_0095 = {0x1028, 0x0095, pci_subsys_8086_2415_1028_0095, 0}; #undef pci_ss_info_1028_0095 @@ -42061,6 +42236,10 @@ static const pciSubsystemInfo pci_ss_info_8086_2444_8086_4532 = {0x8086, 0x4532, pci_subsys_8086_2444_8086_4532, 0}; #undef pci_ss_info_8086_4532 #define pci_ss_info_8086_4532 pci_ss_info_8086_2444_8086_4532 +static const pciSubsystemInfo pci_ss_info_8086_2445_0e11_000b = + {0x0e11, 0x000b, pci_subsys_8086_2445_0e11_000b, 0}; +#undef pci_ss_info_0e11_000b +#define pci_ss_info_0e11_000b pci_ss_info_8086_2445_0e11_000b static const pciSubsystemInfo pci_ss_info_8086_2445_0e11_0088 = {0x0e11, 0x0088, pci_subsys_8086_2445_0e11_0088, 0}; #undef pci_ss_info_0e11_0088 @@ -42101,6 +42280,10 @@ static const pciSubsystemInfo pci_ss_info_8086_2448_103c_099c = {0x103c, 0x099c, pci_subsys_8086_2448_103c_099c, 0}; #undef pci_ss_info_103c_099c #define pci_ss_info_103c_099c pci_ss_info_8086_2448_103c_099c +static const pciSubsystemInfo pci_ss_info_8086_2448_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_2448_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_2448_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_2448_1734_1055 = {0x1734, 0x1055, pci_subsys_8086_2448_1734_1055, 0}; #undef pci_ss_info_1734_1055 @@ -42477,6 +42660,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24c2_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24c2_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c2_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24c2_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24c2_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24c2_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24c2_1462_5800 = {0x1462, 0x5800, pci_subsys_8086_24c2_1462_5800, 0}; #undef pci_ss_info_1462_5800 @@ -42593,6 +42780,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24c4_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24c4_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c4_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24c4_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24c4_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24c4_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24c4_1462_5800 = {0x1462, 0x5800, pci_subsys_8086_24c4_1462_5800, 0}; #undef pci_ss_info_1462_5800 @@ -42657,6 +42848,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24c5_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24c5_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c5_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24c5_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24c5_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24c5_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24c5_1458_a002 = {0x1458, 0xa002, pci_subsys_8086_24c5_1458_a002, 0}; #undef pci_ss_info_1458_a002 @@ -42705,6 +42900,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24c6_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24c6_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c6_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24c6_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24c6_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24c6_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24c7_1014_0267 = {0x1014, 0x0267, pci_subsys_8086_24c7_1014_0267, 0}; #undef pci_ss_info_1014_0267 @@ -42745,6 +42944,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24c7_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24c7_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24c7_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24c7_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24c7_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24c7_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24c7_1462_5800 = {0x1462, 0x5800, pci_subsys_8086_24c7_1462_5800, 0}; #undef pci_ss_info_1462_5800 @@ -42797,6 +43000,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24ca_1071_8160 = {0x1071, 0x8160, pci_subsys_8086_24ca_1071_8160, 0}; #undef pci_ss_info_1071_8160 #define pci_ss_info_1071_8160 pci_ss_info_8086_24ca_1071_8160 +static const pciSubsystemInfo pci_ss_info_8086_24ca_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24ca_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24ca_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24ca_1734_1055 = {0x1734, 0x1055, pci_subsys_8086_24ca_1734_1055, 0}; #undef pci_ss_info_1734_1055 @@ -42829,6 +43036,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24cb_4c53_1090 = {0x4c53, 0x1090, pci_subsys_8086_24cb_4c53_1090, 0}; #undef pci_ss_info_4c53_1090 #define pci_ss_info_4c53_1090 pci_ss_info_8086_24cb_4c53_1090 +static const pciSubsystemInfo pci_ss_info_8086_24cc_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24cc_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24cc_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24cc_1734_1055 = {0x1734, 0x1055, pci_subsys_8086_24cc_1734_1055, 0}; #undef pci_ss_info_1734_1055 @@ -42885,6 +43096,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24cd_1179_ff00 = {0x1179, 0xff00, pci_subsys_8086_24cd_1179_ff00, 0}; #undef pci_ss_info_1179_ff00 #define pci_ss_info_1179_ff00 pci_ss_info_8086_24cd_1179_ff00 +static const pciSubsystemInfo pci_ss_info_8086_24cd_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_24cd_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_24cd_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_24cd_1462_3981 = {0x1462, 0x3981, pci_subsys_8086_24cd_1462_3981, 0}; #undef pci_ss_info_1462_3981 @@ -43021,6 +43236,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24d3_1028_0169 = {0x1028, 0x0169, pci_subsys_8086_24d3_1028_0169, 0}; #undef pci_ss_info_1028_0169 #define pci_ss_info_1028_0169 pci_ss_info_8086_24d3_1028_0169 +static const pciSubsystemInfo pci_ss_info_8086_24d3_103c_12bc = + {0x103c, 0x12bc, pci_subsys_8086_24d3_103c_12bc, 0}; +#undef pci_ss_info_103c_12bc +#define pci_ss_info_103c_12bc pci_ss_info_8086_24d3_103c_12bc static const pciSubsystemInfo pci_ss_info_8086_24d3_1043_80a6 = {0x1043, 0x80a6, pci_subsys_8086_24d3_1043_80a6, 0}; #undef pci_ss_info_1043_80a6 @@ -43117,6 +43336,10 @@ static const pciSubsystemInfo pci_ss_info_8086_24d4_8086_524c = {0x8086, 0x524c, pci_subsys_8086_24d4_8086_524c, 0}; #undef pci_ss_info_8086_524c #define pci_ss_info_8086_524c pci_ss_info_8086_24d4_8086_524c +static const pciSubsystemInfo pci_ss_info_8086_24d5_100a_147b = + {0x100a, 0x147b, pci_subsys_8086_24d5_100a_147b, 0}; +#undef pci_ss_info_100a_147b +#define pci_ss_info_100a_147b pci_ss_info_8086_24d5_100a_147b static const pciSubsystemInfo pci_ss_info_8086_24d5_1028_0169 = {0x1028, 0x0169, pci_subsys_8086_24d5_1028_0169, 0}; #undef pci_ss_info_1028_0169 @@ -43461,6 +43684,10 @@ static const pciSubsystemInfo pci_ss_info_8086_2570_103c_006a = {0x103c, 0x006a, pci_subsys_8086_2570_103c_006a, 0}; #undef pci_ss_info_103c_006a #define pci_ss_info_103c_006a pci_ss_info_8086_2570_103c_006a +static const pciSubsystemInfo pci_ss_info_8086_2570_103c_12bc = + {0x103c, 0x12bc, pci_subsys_8086_2570_103c_12bc, 0}; +#undef pci_ss_info_103c_12bc +#define pci_ss_info_103c_12bc pci_ss_info_8086_2570_103c_12bc static const pciSubsystemInfo pci_ss_info_8086_2570_1043_80f2 = {0x1043, 0x80f2, pci_subsys_8086_2570_1043_80f2, 0}; #undef pci_ss_info_1043_80f2 @@ -44021,6 +44248,10 @@ static const pciSubsystemInfo pci_ss_info_8086_27b8_8086_544e = {0x8086, 0x544e, pci_subsys_8086_27b8_8086_544e, 0}; #undef pci_ss_info_8086_544e #define pci_ss_info_8086_544e pci_ss_info_8086_27b8_8086_544e +static const pciSubsystemInfo pci_ss_info_8086_27b9_10f7_8338 = + {0x10f7, 0x8338, pci_subsys_8086_27b9_10f7_8338, 0}; +#undef pci_ss_info_10f7_8338 +#define pci_ss_info_10f7_8338 pci_ss_info_8086_27b9_10f7_8338 static const pciSubsystemInfo pci_ss_info_8086_27b9_17aa_2009 = {0x17aa, 0x2009, pci_subsys_8086_27b9_17aa_2009, 0}; #undef pci_ss_info_17aa_2009 @@ -44097,6 +44328,14 @@ static const pciSubsystemInfo pci_ss_info_8086_27d8_107b_5048 = {0x107b, 0x5048, pci_subsys_8086_27d8_107b_5048, 0}; #undef pci_ss_info_107b_5048 #define pci_ss_info_107b_5048 pci_ss_info_8086_27d8_107b_5048 +static const pciSubsystemInfo pci_ss_info_8086_27d8_10f7_8338 = + {0x10f7, 0x8338, pci_subsys_8086_27d8_10f7_8338, 0}; +#undef pci_ss_info_10f7_8338 +#define pci_ss_info_10f7_8338 pci_ss_info_8086_27d8_10f7_8338 +static const pciSubsystemInfo pci_ss_info_8086_27d8_1179_ff31 = + {0x1179, 0xff31, pci_subsys_8086_27d8_1179_ff31, 0}; +#undef pci_ss_info_1179_ff31 +#define pci_ss_info_1179_ff31 pci_ss_info_8086_27d8_1179_ff31 static const pciSubsystemInfo pci_ss_info_8086_27d8_152d_0753 = {0x152d, 0x0753, pci_subsys_8086_27d8_152d_0753, 0}; #undef pci_ss_info_152d_0753 @@ -44105,6 +44344,10 @@ static const pciSubsystemInfo pci_ss_info_8086_27d8_17aa_2010 = {0x17aa, 0x2010, pci_subsys_8086_27d8_17aa_2010, 0}; #undef pci_ss_info_17aa_2010 #define pci_ss_info_17aa_2010 pci_ss_info_8086_27d8_17aa_2010 +static const pciSubsystemInfo pci_ss_info_8086_27da_10f7_8338 = + {0x10f7, 0x8338, pci_subsys_8086_27da_10f7_8338, 0}; +#undef pci_ss_info_10f7_8338 +#define pci_ss_info_10f7_8338 pci_ss_info_8086_27da_10f7_8338 static const pciSubsystemInfo pci_ss_info_8086_27da_17aa_200f = {0x17aa, 0x200f, pci_subsys_8086_27da_17aa_200f, 0}; #undef pci_ss_info_17aa_200f @@ -44121,6 +44364,10 @@ static const pciSubsystemInfo pci_ss_info_8086_27df_107b_5048 = {0x107b, 0x5048, pci_subsys_8086_27df_107b_5048, 0}; #undef pci_ss_info_107b_5048 #define pci_ss_info_107b_5048 pci_ss_info_8086_27df_107b_5048 +static const pciSubsystemInfo pci_ss_info_8086_27df_10f7_8338 = + {0x10f7, 0x8338, pci_subsys_8086_27df_10f7_8338, 0}; +#undef pci_ss_info_10f7_8338 +#define pci_ss_info_10f7_8338 pci_ss_info_8086_27df_10f7_8338 static const pciSubsystemInfo pci_ss_info_8086_27df_17aa_200c = {0x17aa, 0x200c, pci_subsys_8086_27df_17aa_200c, 0}; #undef pci_ss_info_17aa_200c @@ -44129,6 +44376,38 @@ static const pciSubsystemInfo pci_ss_info_8086_27df_8086_544e = {0x8086, 0x544e, pci_subsys_8086_27df_8086_544e, 0}; #undef pci_ss_info_8086_544e #define pci_ss_info_8086_544e pci_ss_info_8086_27df_8086_544e +static const pciSubsystemInfo pci_ss_info_8086_2820_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2820_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2820_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_2825_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2825_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2825_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_2830_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2830_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2830_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_2831_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2831_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2831_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_2834_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2834_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2834_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_2836_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_2836_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_2836_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_283e_1462_7235 = + {0x1462, 0x7235, pci_subsys_8086_283e_1462_7235, 0}; +#undef pci_ss_info_1462_7235 +#define pci_ss_info_1462_7235 pci_ss_info_8086_283e_1462_7235 +static const pciSubsystemInfo pci_ss_info_8086_3200_1775_c200 = + {0x1775, 0xc200, pci_subsys_8086_3200_1775_c200, 0}; +#undef pci_ss_info_1775_c200 +#define pci_ss_info_1775_c200 pci_ss_info_8086_3200_1775_c200 static const pciSubsystemInfo pci_ss_info_8086_3340_1025_005a = {0x1025, 0x005a, pci_subsys_8086_3340_1025_005a, 0}; #undef pci_ss_info_1025_005a @@ -44145,6 +44424,14 @@ static const pciSubsystemInfo pci_ss_info_8086_3340_103c_08b0 = {0x103c, 0x08b0, pci_subsys_8086_3340_103c_08b0, 0}; #undef pci_ss_info_103c_08b0 #define pci_ss_info_103c_08b0 pci_ss_info_8086_3340_103c_08b0 +static const pciSubsystemInfo pci_ss_info_8086_3340_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_3340_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_3340_144d_c00c +static const pciSubsystemInfo pci_ss_info_8086_3341_144d_c00c = + {0x144d, 0xc00c, pci_subsys_8086_3341_144d_c00c, 0}; +#undef pci_ss_info_144d_c00c +#define pci_ss_info_144d_c00c pci_ss_info_8086_3341_144d_c00c static const pciSubsystemInfo pci_ss_info_8086_3575_0e11_0030 = {0x0e11, 0x0030, pci_subsys_8086_3575_0e11_0030, 0}; #undef pci_ss_info_0e11_0030 @@ -48590,10 +48877,12 @@ static const pciSubsystemInfo *pci_ss_list_1077_2422[] = { NULL }; #define pci_ss_list_1077_2432 NULL -#define pci_ss_list_1077_3010 NULL #define pci_ss_list_1077_3022 NULL +#define pci_ss_list_1077_3032 NULL #define pci_ss_list_1077_4010 NULL #define pci_ss_list_1077_4022 NULL +#define pci_ss_list_1077_4032 NULL +#define pci_ss_list_1077_5432 NULL #define pci_ss_list_1077_6312 NULL #define pci_ss_list_1077_6322 NULL #endif @@ -55730,7 +56019,9 @@ static const pciSubsystemInfo *pci_ss_list_8086_1040[] = { }; static const pciSubsystemInfo *pci_ss_list_8086_1043[] = { &pci_ss_info_8086_1043_103c_08b0, + &pci_ss_info_8086_1043_8086_2522, &pci_ss_info_8086_1043_8086_2527, + &pci_ss_info_8086_1043_8086_2581, NULL }; static const pciSubsystemInfo *pci_ss_list_8086_1048[] = { @@ -55754,6 +56045,10 @@ static const pciSubsystemInfo *pci_ss_list_8086_1050[] = { #define pci_ss_list_8086_1051 NULL #define pci_ss_list_8086_1052 NULL #define pci_ss_list_8086_1053 NULL +#define pci_ss_list_8086_1054 NULL +#define pci_ss_list_8086_1055 NULL +#define pci_ss_list_8086_1056 NULL +#define pci_ss_list_8086_1057 NULL #define pci_ss_list_8086_1059 NULL #define pci_ss_list_8086_105b NULL static const pciSubsystemInfo *pci_ss_list_8086_105e[] = { @@ -55874,7 +56169,11 @@ static const pciSubsystemInfo *pci_ss_list_8086_108a[] = { #define pci_ss_list_8086_108c NULL #define pci_ss_list_8086_108e NULL #define pci_ss_list_8086_108f NULL +#define pci_ss_list_8086_1091 NULL #define pci_ss_list_8086_1092 NULL +#define pci_ss_list_8086_1093 NULL +#define pci_ss_list_8086_1094 NULL +#define pci_ss_list_8086_1095 NULL #define pci_ss_list_8086_1096 NULL #define pci_ss_list_8086_1097 NULL #define pci_ss_list_8086_1098 NULL @@ -55883,14 +56182,25 @@ static const pciSubsystemInfo *pci_ss_list_8086_1099[] = { NULL }; static const pciSubsystemInfo *pci_ss_list_8086_109a[] = { + &pci_ss_info_8086_109a_1179_ff10, &pci_ss_info_8086_109a_17aa_2001, &pci_ss_info_8086_109a_17aa_207e, &pci_ss_info_8086_109a_8086_109a, NULL }; #define pci_ss_list_8086_109b NULL +static const pciSubsystemInfo *pci_ss_list_8086_109e[] = { + &pci_ss_info_8086_109e_8086_a01f, + &pci_ss_info_8086_109e_8086_a11f, + NULL +}; #define pci_ss_list_8086_10a0 NULL #define pci_ss_list_8086_10a1 NULL +static const pciSubsystemInfo *pci_ss_list_8086_10a4[] = { + &pci_ss_info_8086_10a4_8086_10a4, + &pci_ss_info_8086_10a4_8086_11a4, + NULL +}; #define pci_ss_list_8086_10b0 NULL #define pci_ss_list_8086_10b2 NULL #define pci_ss_list_8086_10b3 NULL @@ -55908,6 +56218,13 @@ static const pciSubsystemInfo *pci_ss_list_8086_10b9[] = { }; #define pci_ss_list_8086_10ba NULL #define pci_ss_list_8086_10bb NULL +static const pciSubsystemInfo *pci_ss_list_8086_10bc[] = { + &pci_ss_info_8086_10bc_8086_10bc, + &pci_ss_info_8086_10bc_8086_11bc, + NULL +}; +#define pci_ss_list_8086_10c4 NULL +#define pci_ss_list_8086_10c5 NULL #define pci_ss_list_8086_1107 NULL static const pciSubsystemInfo *pci_ss_list_8086_1130[] = { &pci_ss_info_8086_1130_1025_1016, @@ -56176,6 +56493,11 @@ static const pciSubsystemInfo *pci_ss_list_8086_1a30[] = { #define pci_ss_list_8086_1a31 NULL #define pci_ss_list_8086_1a38 NULL #define pci_ss_list_8086_1a48 NULL +static const pciSubsystemInfo *pci_ss_list_8086_1b48[] = { + &pci_ss_info_8086_1b48_8086_a01f, + &pci_ss_info_8086_1b48_8086_a11f, + NULL +}; #define pci_ss_list_8086_2410 NULL #define pci_ss_list_8086_2411 NULL #define pci_ss_list_8086_2412 NULL @@ -56238,6 +56560,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_2444[] = { NULL }; static const pciSubsystemInfo *pci_ss_list_8086_2445[] = { + &pci_ss_info_8086_2445_0e11_000b, &pci_ss_info_8086_2445_0e11_0088, &pci_ss_info_8086_2445_1014_01c6, &pci_ss_info_8086_2445_1025_1016, @@ -56254,6 +56577,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_2446[] = { }; static const pciSubsystemInfo *pci_ss_list_8086_2448[] = { &pci_ss_info_8086_2448_103c_099c, + &pci_ss_info_8086_2448_144d_c00c, &pci_ss_info_8086_2448_1734_1055, NULL }; @@ -56401,6 +56725,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24c2[] = { &pci_ss_info_8086_24c2_103c_0890, &pci_ss_info_8086_24c2_103c_08b0, &pci_ss_info_8086_24c2_1071_8160, + &pci_ss_info_8086_24c2_144d_c00c, &pci_ss_info_8086_24c2_1462_5800, &pci_ss_info_8086_24c2_1509_2990, &pci_ss_info_8086_24c2_1734_1004, @@ -56436,6 +56761,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24c4[] = { &pci_ss_info_8086_24c4_103c_0890, &pci_ss_info_8086_24c4_103c_08b0, &pci_ss_info_8086_24c4_1071_8160, + &pci_ss_info_8086_24c4_144d_c00c, &pci_ss_info_8086_24c4_1462_5800, &pci_ss_info_8086_24c4_1509_2990, &pci_ss_info_8086_24c4_1734_1004, @@ -56455,6 +56781,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24c5[] = { &pci_ss_info_8086_24c5_103c_0890, &pci_ss_info_8086_24c5_103c_08b0, &pci_ss_info_8086_24c5_1071_8160, + &pci_ss_info_8086_24c5_144d_c00c, &pci_ss_info_8086_24c5_1458_a002, &pci_ss_info_8086_24c5_1462_5800, &pci_ss_info_8086_24c5_1734_1005, @@ -56470,6 +56797,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24c6[] = { &pci_ss_info_8086_24c6_103c_0890, &pci_ss_info_8086_24c6_103c_08b0, &pci_ss_info_8086_24c6_1071_8160, + &pci_ss_info_8086_24c6_144d_c00c, NULL }; static const pciSubsystemInfo *pci_ss_list_8086_24c7[] = { @@ -56483,6 +56811,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24c7[] = { &pci_ss_info_8086_24c7_103c_0890, &pci_ss_info_8086_24c7_103c_08b0, &pci_ss_info_8086_24c7_1071_8160, + &pci_ss_info_8086_24c7_144d_c00c, &pci_ss_info_8086_24c7_1462_5800, &pci_ss_info_8086_24c7_1509_2990, &pci_ss_info_8086_24c7_1734_1004, @@ -56499,6 +56828,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24ca[] = { &pci_ss_info_8086_24ca_103c_0890, &pci_ss_info_8086_24ca_103c_08b0, &pci_ss_info_8086_24ca_1071_8160, + &pci_ss_info_8086_24ca_144d_c00c, &pci_ss_info_8086_24ca_1734_1055, &pci_ss_info_8086_24ca_8086_4541, NULL @@ -56513,6 +56843,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24cb[] = { NULL }; static const pciSubsystemInfo *pci_ss_list_8086_24cc[] = { + &pci_ss_info_8086_24cc_144d_c00c, &pci_ss_info_8086_24cc_1734_1055, NULL }; @@ -56530,6 +56861,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24cd[] = { &pci_ss_info_8086_24cd_103c_08b0, &pci_ss_info_8086_24cd_1071_8160, &pci_ss_info_8086_24cd_1179_ff00, + &pci_ss_info_8086_24cd_144d_c00c, &pci_ss_info_8086_24cd_1462_3981, &pci_ss_info_8086_24cd_1509_1968, &pci_ss_info_8086_24cd_1734_1004, @@ -56574,6 +56906,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24d3[] = { &pci_ss_info_8086_24d3_1014_02ed, &pci_ss_info_8086_24d3_1028_0156, &pci_ss_info_8086_24d3_1028_0169, + &pci_ss_info_8086_24d3_103c_12bc, &pci_ss_info_8086_24d3_1043_80a6, &pci_ss_info_8086_24d3_1458_24d2, &pci_ss_info_8086_24d3_1462_7280, @@ -56604,6 +56937,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_24d4[] = { NULL }; static const pciSubsystemInfo *pci_ss_list_8086_24d5[] = { + &pci_ss_info_8086_24d5_100a_147b, &pci_ss_info_8086_24d5_1028_0169, &pci_ss_info_8086_24d5_103c_006a, &pci_ss_info_8086_24d5_103c_12bc, @@ -56757,6 +57091,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_2562[] = { }; static const pciSubsystemInfo *pci_ss_list_8086_2570[] = { &pci_ss_info_8086_2570_103c_006a, + &pci_ss_info_8086_2570_103c_12bc, &pci_ss_info_8086_2570_1043_80f2, &pci_ss_info_8086_2570_1458_2570, NULL @@ -57122,6 +57457,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_27b8[] = { NULL }; static const pciSubsystemInfo *pci_ss_list_8086_27b9[] = { + &pci_ss_info_8086_27b9_10f7_8338, &pci_ss_info_8086_27b9_17aa_2009, NULL }; @@ -57174,11 +57510,14 @@ static const pciSubsystemInfo *pci_ss_list_8086_27cc[] = { #define pci_ss_list_8086_27d6 NULL static const pciSubsystemInfo *pci_ss_list_8086_27d8[] = { &pci_ss_info_8086_27d8_107b_5048, + &pci_ss_info_8086_27d8_10f7_8338, + &pci_ss_info_8086_27d8_1179_ff31, &pci_ss_info_8086_27d8_152d_0753, &pci_ss_info_8086_27d8_17aa_2010, NULL }; static const pciSubsystemInfo *pci_ss_list_8086_27da[] = { + &pci_ss_info_8086_27da_10f7_8338, &pci_ss_info_8086_27da_17aa_200f, &pci_ss_info_8086_27da_8086_544e, NULL @@ -57191,6 +57530,7 @@ static const pciSubsystemInfo *pci_ss_list_8086_27dc[] = { #define pci_ss_list_8086_27de NULL static const pciSubsystemInfo *pci_ss_list_8086_27df[] = { &pci_ss_info_8086_27df_107b_5048, + &pci_ss_info_8086_27df_10f7_8338, &pci_ss_info_8086_27df_17aa_200c, &pci_ss_info_8086_27df_8086_544e, NULL @@ -57202,22 +57542,43 @@ static const pciSubsystemInfo *pci_ss_list_8086_27df[] = { #define pci_ss_list_8086_2812 NULL #define pci_ss_list_8086_2814 NULL #define pci_ss_list_8086_2815 NULL -#define pci_ss_list_8086_2820 NULL +static const pciSubsystemInfo *pci_ss_list_8086_2820[] = { + &pci_ss_info_8086_2820_1462_7235, + NULL +}; #define pci_ss_list_8086_2821 NULL #define pci_ss_list_8086_2822 NULL #define pci_ss_list_8086_2824 NULL -#define pci_ss_list_8086_2825 NULL +static const pciSubsystemInfo *pci_ss_list_8086_2825[] = { + &pci_ss_info_8086_2825_1462_7235, + NULL +}; #define pci_ss_list_8086_2828 NULL #define pci_ss_list_8086_2829 NULL #define pci_ss_list_8086_282a NULL -#define pci_ss_list_8086_2830 NULL -#define pci_ss_list_8086_2831 NULL +static const pciSubsystemInfo *pci_ss_list_8086_2830[] = { + &pci_ss_info_8086_2830_1462_7235, + NULL +}; +static const pciSubsystemInfo *pci_ss_list_8086_2831[] = { + &pci_ss_info_8086_2831_1462_7235, + NULL +}; #define pci_ss_list_8086_2832 NULL -#define pci_ss_list_8086_2834 NULL +static const pciSubsystemInfo *pci_ss_list_8086_2834[] = { + &pci_ss_info_8086_2834_1462_7235, + NULL +}; #define pci_ss_list_8086_2835 NULL -#define pci_ss_list_8086_2836 NULL +static const pciSubsystemInfo *pci_ss_list_8086_2836[] = { + &pci_ss_info_8086_2836_1462_7235, + NULL +}; #define pci_ss_list_8086_283a NULL -#define pci_ss_list_8086_283e NULL +static const pciSubsystemInfo *pci_ss_list_8086_283e[] = { + &pci_ss_info_8086_283e_1462_7235, + NULL +}; #define pci_ss_list_8086_283f NULL #define pci_ss_list_8086_2841 NULL #define pci_ss_list_8086_2843 NULL @@ -57263,15 +57624,22 @@ static const pciSubsystemInfo *pci_ss_list_8086_27df[] = { #define pci_ss_list_8086_2a06 NULL #define pci_ss_list_8086_2a07 NULL #define pci_ss_list_8086_3092 NULL -#define pci_ss_list_8086_3200 NULL +static const pciSubsystemInfo *pci_ss_list_8086_3200[] = { + &pci_ss_info_8086_3200_1775_c200, + NULL +}; static const pciSubsystemInfo *pci_ss_list_8086_3340[] = { &pci_ss_info_8086_3340_1025_005a, &pci_ss_info_8086_3340_103c_088c, &pci_ss_info_8086_3340_103c_0890, &pci_ss_info_8086_3340_103c_08b0, + &pci_ss_info_8086_3340_144d_c00c, + NULL +}; +static const pciSubsystemInfo *pci_ss_list_8086_3341[] = { + &pci_ss_info_8086_3341_144d_c00c, NULL }; -#define pci_ss_list_8086_3341 NULL #define pci_ss_list_8086_3500 NULL #define pci_ss_list_8086_3501 NULL #define pci_ss_list_8086_3504 NULL @@ -58120,6 +58488,7 @@ static const pciSubsystemInfo *pci_ss_list_0925[] = { #define pci_ss_list_0b49 NULL #define pci_ss_list_0ccd NULL static const pciSubsystemInfo *pci_ss_list_0e11[] = { + &pci_ss_info_0e11_000b, &pci_ss_info_0e11_0012, &pci_ss_info_0e11_001e, &pci_ss_info_0e11_0022, @@ -58382,7 +58751,12 @@ static const pciSubsystemInfo *pci_ss_list_1005[] = { #define pci_ss_list_1006 NULL #define pci_ss_list_1007 NULL #define pci_ss_list_1008 NULL -#define pci_ss_list_100a NULL +#ifdef VENDOR_INCLUDE_NONVIDEO +static const pciSubsystemInfo *pci_ss_list_100a[] = { + &pci_ss_info_100a_147b, + NULL +}; +#endif #define pci_ss_list_100b NULL #define pci_ss_list_100c NULL #define pci_ss_list_100d NULL @@ -60499,6 +60873,7 @@ static const pciSubsystemInfo *pci_ss_list_1179[] = { &pci_ss_info_1179_ff00, &pci_ss_info_1179_ff01, &pci_ss_info_1179_ff10, + &pci_ss_info_1179_ff31, NULL }; #endif @@ -62200,6 +62575,7 @@ static const pciSubsystemInfo *pci_ss_list_1462[] = { &pci_ss_info_1462_7030, &pci_ss_info_1462_7100, &pci_ss_info_1462_7207, + &pci_ss_info_1462_7235, &pci_ss_info_1462_7280, &pci_ss_info_1462_728c, &pci_ss_info_1462_7580, @@ -63348,6 +63724,7 @@ static const pciSubsystemInfo *pci_ss_list_1775[] = { &pci_ss_info_1775_10d0, &pci_ss_info_1775_10d1, &pci_ss_info_1775_6003, + &pci_ss_info_1775_c200, &pci_ss_info_1775_ce90, NULL }; @@ -64030,6 +64407,8 @@ static const pciSubsystemInfo *pci_ss_list_8086[] = { &pci_ss_info_8086_1094, &pci_ss_info_8086_1099, &pci_ss_info_8086_109a, + &pci_ss_info_8086_10a4, + &pci_ss_info_8086_10bc, &pci_ss_info_8086_10f0, &pci_ss_info_8086_1107, &pci_ss_info_8086_1109, @@ -64046,6 +64425,8 @@ static const pciSubsystemInfo *pci_ss_list_8086[] = { &pci_ss_info_8086_117a, &pci_ss_info_8086_118a, &pci_ss_info_8086_1199, + &pci_ss_info_8086_11a4, + &pci_ss_info_8086_11bc, &pci_ss_info_8086_125e, &pci_ss_info_8086_125f, &pci_ss_info_8086_1276, @@ -64098,7 +64479,9 @@ static const pciSubsystemInfo *pci_ss_list_8086[] = { &pci_ss_info_8086_2413, &pci_ss_info_8086_24db, &pci_ss_info_8086_2513, + &pci_ss_info_8086_2522, &pci_ss_info_8086_2527, + &pci_ss_info_8086_2581, &pci_ss_info_8086_265c, &pci_ss_info_8086_3000, &pci_ss_info_8086_3001, @@ -79384,19 +79767,19 @@ static const pciDeviceInfo pci_dev_info_1077_2432 = { #endif 0 }; -static const pciDeviceInfo pci_dev_info_1077_3010 = { - 0x3010, pci_device_1077_3010, +static const pciDeviceInfo pci_dev_info_1077_3022 = { + 0x3022, pci_device_1077_3022, #ifdef INIT_SUBSYS_INFO - pci_ss_list_1077_3010, + pci_ss_list_1077_3022, #else NULL, #endif 0 }; -static const pciDeviceInfo pci_dev_info_1077_3022 = { - 0x3022, pci_device_1077_3022, +static const pciDeviceInfo pci_dev_info_1077_3032 = { + 0x3032, pci_device_1077_3032, #ifdef INIT_SUBSYS_INFO - pci_ss_list_1077_3022, + pci_ss_list_1077_3032, #else NULL, #endif @@ -79420,6 +79803,24 @@ static const pciDeviceInfo pci_dev_info_1077_4022 = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_1077_4032 = { + 0x4032, pci_device_1077_4032, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_1077_4032, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_1077_5432 = { + 0x5432, pci_device_1077_5432, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_1077_5432, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_1077_6312 = { 0x6312, pci_device_1077_6312, #ifdef INIT_SUBSYS_INFO @@ -109037,7 +109438,6 @@ static const pciDeviceInfo pci_dev_info_19e7_1005 = { 0 }; #endif -#ifdef VENDOR_INCLUDE_NONVIDEO static const pciDeviceInfo pci_dev_info_1a03_2000 = { 0x2000, pci_device_1a03_2000, #ifdef INIT_SUBSYS_INFO @@ -109047,7 +109447,6 @@ static const pciDeviceInfo pci_dev_info_1a03_2000 = { #endif 0 }; -#endif #ifdef VENDOR_INCLUDE_NONVIDEO static const pciDeviceInfo pci_dev_info_1a08_0000 = { 0x0000, pci_device_1a08_0000, @@ -111843,6 +112242,42 @@ static const pciDeviceInfo pci_dev_info_8086_1053 = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_1054 = { + 0x1054, pci_device_8086_1054, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1054, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_1055 = { + 0x1055, pci_device_8086_1055, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1055, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_1056 = { + 0x1056, pci_device_8086_1056, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1056, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_1057 = { + 0x1057, pci_device_8086_1057, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1057, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_1059 = { 0x1059, pci_device_8086_1059, #ifdef INIT_SUBSYS_INFO @@ -112185,6 +112620,15 @@ static const pciDeviceInfo pci_dev_info_8086_108f = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_1091 = { + 0x1091, pci_device_8086_1091, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1091, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_1092 = { 0x1092, pci_device_8086_1092, #ifdef INIT_SUBSYS_INFO @@ -112194,6 +112638,33 @@ static const pciDeviceInfo pci_dev_info_8086_1092 = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_1093 = { + 0x1093, pci_device_8086_1093, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1093, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_1094 = { + 0x1094, pci_device_8086_1094, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1094, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_1095 = { + 0x1095, pci_device_8086_1095, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1095, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_1096 = { 0x1096, pci_device_8086_1096, #ifdef INIT_SUBSYS_INFO @@ -112248,6 +112719,15 @@ static const pciDeviceInfo pci_dev_info_8086_109b = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_109e = { + 0x109e, pci_device_8086_109e, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_109e, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_10a0 = { 0x10a0, pci_device_8086_10a0, #ifdef INIT_SUBSYS_INFO @@ -112266,6 +112746,15 @@ static const pciDeviceInfo pci_dev_info_8086_10a1 = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_10a4 = { + 0x10a4, pci_device_8086_10a4, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_10a4, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_10b0 = { 0x10b0, pci_device_8086_10b0, #ifdef INIT_SUBSYS_INFO @@ -112338,6 +112827,33 @@ static const pciDeviceInfo pci_dev_info_8086_10bb = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_10bc = { + 0x10bc, pci_device_8086_10bc, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_10bc, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_10c4 = { + 0x10c4, pci_device_8086_10c4, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_10c4, +#else + NULL, +#endif + 0 +}; +static const pciDeviceInfo pci_dev_info_8086_10c5 = { + 0x10c5, pci_device_8086_10c5, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_10c5, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_1107 = { 0x1107, pci_device_8086_1107, #ifdef INIT_SUBSYS_INFO @@ -112752,6 +113268,15 @@ static const pciDeviceInfo pci_dev_info_8086_1a48 = { #endif 0 }; +static const pciDeviceInfo pci_dev_info_8086_1b48 = { + 0x1b48, pci_device_8086_1b48, +#ifdef INIT_SUBSYS_INFO + pci_ss_list_8086_1b48, +#else + NULL, +#endif + 0 +}; static const pciDeviceInfo pci_dev_info_8086_2410 = { 0x2410, pci_device_8086_2410, #ifdef INIT_SUBSYS_INFO @@ -120919,10 +121444,12 @@ static const pciDeviceInfo *pci_dev_list_1077[] = { &pci_dev_info_1077_2322, &pci_dev_info_1077_2422, &pci_dev_info_1077_2432, - &pci_dev_info_1077_3010, &pci_dev_info_1077_3022, + &pci_dev_info_1077_3032, &pci_dev_info_1077_4010, &pci_dev_info_1077_4022, + &pci_dev_info_1077_4032, + &pci_dev_info_1077_5432, &pci_dev_info_1077_6312, &pci_dev_info_1077_6322, NULL @@ -127194,12 +127721,10 @@ static const pciDeviceInfo *pci_dev_list_19e7[] = { NULL }; #endif -#ifdef VENDOR_INCLUDE_NONVIDEO static const pciDeviceInfo *pci_dev_list_1a03[] = { &pci_dev_info_1a03_2000, NULL }; -#endif #ifdef VENDOR_INCLUDE_NONVIDEO static const pciDeviceInfo *pci_dev_list_1a08[] = { &pci_dev_info_1a08_0000, @@ -127727,6 +128252,10 @@ static const pciDeviceInfo *pci_dev_list_8086[] = { &pci_dev_info_8086_1051, &pci_dev_info_8086_1052, &pci_dev_info_8086_1053, + &pci_dev_info_8086_1054, + &pci_dev_info_8086_1055, + &pci_dev_info_8086_1056, + &pci_dev_info_8086_1057, &pci_dev_info_8086_1059, &pci_dev_info_8086_105b, &pci_dev_info_8086_105e, @@ -127765,15 +128294,21 @@ static const pciDeviceInfo *pci_dev_list_8086[] = { &pci_dev_info_8086_108c, &pci_dev_info_8086_108e, &pci_dev_info_8086_108f, + &pci_dev_info_8086_1091, &pci_dev_info_8086_1092, + &pci_dev_info_8086_1093, + &pci_dev_info_8086_1094, + &pci_dev_info_8086_1095, &pci_dev_info_8086_1096, &pci_dev_info_8086_1097, &pci_dev_info_8086_1098, &pci_dev_info_8086_1099, &pci_dev_info_8086_109a, &pci_dev_info_8086_109b, + &pci_dev_info_8086_109e, &pci_dev_info_8086_10a0, &pci_dev_info_8086_10a1, + &pci_dev_info_8086_10a4, &pci_dev_info_8086_10b0, &pci_dev_info_8086_10b2, &pci_dev_info_8086_10b3, @@ -127782,6 +128317,9 @@ static const pciDeviceInfo *pci_dev_list_8086[] = { &pci_dev_info_8086_10b9, &pci_dev_info_8086_10ba, &pci_dev_info_8086_10bb, + &pci_dev_info_8086_10bc, + &pci_dev_info_8086_10c4, + &pci_dev_info_8086_10c5, &pci_dev_info_8086_1107, &pci_dev_info_8086_1130, &pci_dev_info_8086_1131, @@ -127828,6 +128366,7 @@ static const pciDeviceInfo *pci_dev_list_8086[] = { &pci_dev_info_8086_1a31, &pci_dev_info_8086_1a38, &pci_dev_info_8086_1a48, + &pci_dev_info_8086_1b48, &pci_dev_info_8086_2410, &pci_dev_info_8086_2411, &pci_dev_info_8086_2412, @@ -133715,9 +134254,7 @@ static const pciVendorInfo pciVendorInfoList[] = { #ifdef VENDOR_INCLUDE_NONVIDEO {0x19e7, pci_vendor_19e7, pci_dev_list_19e7}, #endif -#ifdef VENDOR_INCLUDE_NONVIDEO {0x1a03, pci_vendor_1a03, pci_dev_list_1a03}, -#endif #ifdef VENDOR_INCLUDE_NONVIDEO {0x1a08, pci_vendor_1a08, pci_dev_list_1a08}, #endif @@ -139176,9 +139713,7 @@ static const pciVendorSubsysInfo pciVendorSubsysInfoList[] = { #ifdef VENDOR_INCLUDE_NONVIDEO {0x19e7, pci_vendor_19e7, pci_ss_list_19e7}, #endif -#ifdef VENDOR_INCLUDE_NONVIDEO {0x1a03, pci_vendor_1a03, pci_ss_list_1a03}, -#endif #ifdef VENDOR_INCLUDE_NONVIDEO {0x1a08, pci_vendor_1a08, pci_ss_list_1a08}, #endif From d17ec01e8395a8f14b75a10c8bf082b3f5a4fb36 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 1 Dec 2006 00:41:41 +0200 Subject: [PATCH 04/45] remove CID support (bug #5553) Remove CID from all our fontpaths. (cherry picked from 69820a10e33e4582c192360996e866007114639d commit) --- configure.ac | 2 +- hw/xfree86/Makefile.am | 1 - hw/xfree86/dixmods/type1mod.c | 15 --------------- hw/xfree86/doc/man/xorg.conf.man.pre | 2 -- hw/xfree86/xorgconf.cpp | 1 - 5 files changed, 1 insertion(+), 20 deletions(-) diff --git a/configure.ac b/configure.ac index 1aa5455b9..851194c9f 100644 --- a/configure.ac +++ b/configure.ac @@ -391,7 +391,7 @@ AC_ARG_WITH(mesa-source, AS_HELP_STRING([--with-mesa-source=MESA_SOURCE], [P AC_ARG_WITH(fontdir, AS_HELP_STRING([--with-fontdir=FONTDIR], [Path to top level dir where fonts are installed (default: ${libdir}/X11/fonts)]), [ FONTDIR="$withval" ], [ FONTDIR="${libdir}/X11/fonts" ]) -DEFAULT_FONT_PATH="${FONTDIR}/misc/,${FONTDIR}/TTF/,${FONTDIR}/OTF,${FONTDIR}/Type1/,${FONTDIR}/CID/,${FONTDIR}/100dpi/,${FONTDIR}/75dpi/" +DEFAULT_FONT_PATH="${FONTDIR}/misc/,${FONTDIR}/TTF/,${FONTDIR}/OTF,${FONTDIR}/Type1/,${FONTDIR}/100dpi/,${FONTDIR}/75dpi/" AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]), [ FONTPATH="$withval" ], [ FONTPATH="${DEFAULT_FONT_PATH}" ]) diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index b373242e8..0c1306f09 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -93,7 +93,6 @@ CPP_FILES_FLAGS = \ -DMISCFONTPATH="\"$(BASE_FONT_PATH)/misc\"" \ -DT1FONTPATH="\"$(BASE_FONT_PATH)/Type1\"" \ -DTRUETYPEFONTPATH="\"$(BASE_FONT_PATH)/TTF\"" \ - -DCIDFONTPATH="\"$(BASE_FONT_PATH)/CID\"" \ -DDPI75FONTPATH="\"$(BASE_FONT_PATH)/75dpi\"" \ -DDPI100FONTPATH="\"$(BASE_FONT_PATH)/100dpi\"" \ -DMODULEPATH=\"$(DEFAULT_MODULE_PATH)\" diff --git a/hw/xfree86/dixmods/type1mod.c b/hw/xfree86/dixmods/type1mod.c index 48c1d0421..3da53eae5 100644 --- a/hw/xfree86/dixmods/type1mod.c +++ b/hw/xfree86/dixmods/type1mod.c @@ -57,9 +57,6 @@ static XF86ModuleVersionInfo VersRec = _X_EXPORT XF86ModuleData type1ModuleData = { &VersRec, type1Setup, NULL }; extern void Type1RegisterFontFileFunctions(void); -#ifdef BUILDCID -extern void CIDRegisterFontFileFunctions(void); -#endif FontModule type1Module = { Type1RegisterFontFileFunctions, @@ -67,23 +64,11 @@ FontModule type1Module = { NULL }; -#ifdef BUILDCID -FontModule CIDModule = { - CIDRegisterFontFileFunctions, - "CID", - NULL -}; -#endif - static pointer type1Setup(pointer module, pointer opts, int *errmaj, int *errmin) { type1Module.module = module; LoadFont(&type1Module); -#ifdef BUILDCID - CIDModule.module = module; - LoadFont(&CIDModule); -#endif /* Need a non-NULL return */ return (pointer)1; diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre index abf31468a..8d52b2bcf 100644 --- a/hw/xfree86/doc/man/xorg.conf.man.pre +++ b/hw/xfree86/doc/man/xorg.conf.man.pre @@ -311,7 +311,6 @@ font path elements: .I __projectroot__/lib/X11/fonts/misc/ .I __projectroot__/lib/X11/fonts/TTF/ .I __projectroot__/lib/X11/fonts/Type1/ -.I __projectroot__/lib/X11/fonts/CID/ .I __projectroot__/lib/X11/fonts/75dpi/ .I __projectroot__/lib/X11/fonts/100dpi/ .fi @@ -326,7 +325,6 @@ The recommended font path contains the following font path elements: .I __projectroot__/lib/X11/fonts/75dpi/:unscaled .I __projectroot__/lib/X11/fonts/100dpi/:unscaled .I __projectroot__/lib/X11/fonts/Type1/ -.I __projectroot__/lib/X11/fonts/CID/ .I __projectroot__/lib/X11/fonts/Speedo/ .I __projectroot__/lib/X11/fonts/75dpi/ .I __projectroot__/lib/X11/fonts/100dpi/ diff --git a/hw/xfree86/xorgconf.cpp b/hw/xfree86/xorgconf.cpp index 71abe130d..1995045b8 100644 --- a/hw/xfree86/xorgconf.cpp +++ b/hw/xfree86/xorgconf.cpp @@ -56,7 +56,6 @@ XCOMM command (or a combination of both methods) FontPath MISCFONTPATH FontPath T1FONTPATH FontPath TRUETYPEFONTPATH - FontPath CIDFONTPATH FontPath DPI75FONTPATH FontPath DPI100FONTPATH From f2903c12bb4bb0b7c94b96c55af8fa55507f9d7d Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 7 Nov 2006 11:13:32 +0200 Subject: [PATCH 05/45] SyntheticMotion: don't dereference sprite.screen when not using Xinerama (cherry picked from aa052e43c6c293e14f78837e00c6b7581f9713bb commit) --- dix/events.c | 3 ++- hw/kdrive/linux/keyboard.c | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/dix/events.c b/dix/events.c index 7cfe0ad0c..0a39dcd9e 100644 --- a/dix/events.c +++ b/dix/events.c @@ -328,7 +328,8 @@ static void ConfineToShape(RegionPtr shape, int *px, int *py); static void PostNewCursor(void); #define SyntheticMotion(x, y) \ - PostSyntheticMotion(x, y, sprite.screen, \ + PostSyntheticMotion(x, y, noPanoramiXExtension ? 0 : \ + sprite.screen->myNum, \ syncEvents.playingEvents ? \ syncEvents.time.milliseconds : \ currentTime.milliseconds); diff --git a/hw/kdrive/linux/keyboard.c b/hw/kdrive/linux/keyboard.c index b7571f66e..ad9907a59 100644 --- a/hw/kdrive/linux/keyboard.c +++ b/hw/kdrive/linux/keyboard.c @@ -745,14 +745,11 @@ LinuxKeyboardEnable (KdKeyboardInfo *ki) cfsetispeed(&nTty, 9600); cfsetospeed(&nTty, 9600); tcsetattr(fd, TCSANOW, &nTty); - /* Our kernel cleverly ignores O_NONBLOCK. Sigh. */ -#if 0 /* * Flush any pending keystrokes */ while ((n = read (fd, buf, sizeof (buf))) > 0) ; -#endif KdRegisterFd (fd, LinuxKeyboardRead, ki); return Success; } From 8884a73a3f4efa8276c5e38b9573201574c4f1f6 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 27 Nov 2006 22:39:56 +0200 Subject: [PATCH 06/45] xfree86/input: re-add support for disabling drag events --- hw/xfree86/common/xf86Xinput.c | 51 ++++++---------------------------- 1 file changed, 9 insertions(+), 42 deletions(-) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index be3368dff..16e330d43 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -90,16 +90,6 @@ #include "mi.h" -/****************************************************************************** - * debugging macro - *****************************************************************************/ -#ifdef DEBUG -static int debug_level = 0; -#define DBG(lvl, f) {if ((lvl) <= debug_level) f;} -#else -#define DBG(lvl, f) -#endif - xEvent *xf86Events = NULL; static Bool @@ -140,33 +130,6 @@ xf86ProcessCommonOptions(LocalDevicePtr local, } } -void -xf86AlwaysCoreControl(DeviceIntPtr pDev, IntegerCtrl *control) -{ -} - -/*********************************************************************** - * - * xf86XinputFinalizeInit -- - * - * Create and initialize an integer feedback to control the always - * core feature. - * - *********************************************************************** - */ -void -xf86XinputFinalizeInit(DeviceIntPtr dev) -{ - LocalDevicePtr local = (LocalDevicePtr)dev->public.devicePrivate; - - if (InitIntegerFeedbackClassDeviceStruct(dev, xf86AlwaysCoreControl) == FALSE) { - ErrorF("Unable to init integer feedback for always core feature\n"); - } else { - local->always_core_feedback = dev->intfeed; - dev->intfeed->ctrl.integer_displayed = (local->flags & XI86_ALWAYS_CORE) ? 1 : 0; - } -} - /*********************************************************************** * * xf86ActivateDevice -- @@ -193,8 +156,6 @@ xf86ActivateDevice(LocalDevicePtr local) dev->public.devicePrivate = (pointer) local; local->dev = dev; - xf86XinputFinalizeInit(dev); - dev->coreEvents = local->flags & XI86_ALWAYS_CORE; RegisterOtherDevice(dev); @@ -435,9 +396,9 @@ xf86PostMotionEvent(DeviceIntPtr device, va_list var; int i = 0, nevents = 0; Bool drag = xf86SendDragEvents(device); - LocalDevicePtr local = (LocalDevicePtr) device->public.devicePrivate; int *valuators = NULL; int flags = 0; + xEvent *xE = NULL; if (is_absolute) flags = POINTER_ABSOLUTE; @@ -460,8 +421,14 @@ xf86PostMotionEvent(DeviceIntPtr device, flags, first_valuator, num_valuators, valuators); - for (i = 0; i < nevents; i++) - mieqEnqueue(device, xf86Events + i); + for (i = 0; i < nevents; i++) { + xE = xf86Events + i; + /* Don't post core motion events for devices not registered to send + * drag events. */ + if (xE->u.u.type != MotionNotify || drag) { + mieqEnqueue(device, xf86Events + i); + } + } xfree(valuators); } From 99378b58dbc63160382ad9c41f9cb0dd2a24e9d1 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 27 Nov 2006 22:22:33 +0200 Subject: [PATCH 07/45] kdrive/tslib: remove vendor-specific hacks Parts of the KDrive merge accidentally contained a bunch of vendor-specific hacks; sorry. --- hw/kdrive/linux/tslib.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/hw/kdrive/linux/tslib.c b/hw/kdrive/linux/tslib.c index 44b4b5413..41b74fabd 100644 --- a/hw/kdrive/linux/tslib.c +++ b/hw/kdrive/linux/tslib.c @@ -75,10 +75,7 @@ TsRead (int fd, void *closure) while (ts_read(private->tsDev, &event, 1) == 1) { if (event.pressure) { - if (event.pressure > pi->dixdev->absolute->button_threshold) - flags = KD_BUTTON_8; - else - flags = KD_BUTTON_1; + flags = KD_BUTTON_1; /* * Here we test for the touch screen driver actually being on the @@ -113,9 +110,8 @@ TsRead (int fd, void *closure) static Status TslibEnable (KdPointerInfo *pi) { - struct TslibPrivate *private = pi->driverPrivate; + struct TslibPrivate *private = pi->driverPrivate; - private->holdThumbEvents = 1; private->raw_event_hook = NULL; private->raw_event_closure = NULL; private->tsDev = ts_open(pi->path, 0); @@ -126,9 +122,6 @@ TslibEnable (KdPointerInfo *pi) close(private->fd); return BadAlloc; } - if (pi->dixdev && pi->dixdev->absolute && - pi->dixdev->absolute->button_threshold == 0) - pi->dixdev->absolute->button_threshold = 115; KdRegisterFd(private->fd, TsRead, pi); @@ -141,12 +134,12 @@ TslibDisable (KdPointerInfo *pi) { struct TslibPrivate *private = pi->driverPrivate; - if (private->fd) { - KdUnregisterFd(pi, private->fd); - close(private->fd); - } + if (private->fd) + KdUnregisterFd(pi, private->fd, TRUE); + if (private->tsDev) ts_close(private->tsDev); + private->fd = 0; private->tsDev = NULL; } @@ -156,7 +149,6 @@ static Status TslibInit (KdPointerInfo *pi) { int fd = 0, i = 0; - char devpath[PATH_MAX], devname[TS_NAME_SIZE]; DIR *inputdir = NULL; struct dirent *inputent = NULL; struct tsdev *tsDev = NULL; From 2f0a800ffdc881cdb3adf84f1ed97bbb63cba34c Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Mon, 27 Nov 2006 22:22:53 +0200 Subject: [PATCH 08/45] config: move to block/wakeup handler --- config/config.c | 112 ++++++++++++++++++++++++++++-------------------- dix/dispatch.c | 3 -- 2 files changed, 65 insertions(+), 50 deletions(-) diff --git a/config/config.c b/config/config.c index 05757e2c8..9ecdbb43c 100644 --- a/config/config.c +++ b/config/config.c @@ -50,18 +50,27 @@ ret = BadValue; \ goto unwind; } -static DBusConnection *configConnection = NULL; -static int configfd = -1; -static char busobject[32] = { 0 }; -static char busname[64] = { 0 }; +struct config_data { + int fd; + DBusConnection *connection; + char busobject[32]; + char busname[64]; +}; -void -configDispatch() +static struct config_data *configData; + +static void +configWakeupHandler(pointer blockData, int err, pointer pReadMask) { - if (!configConnection) - return; + struct config_data *data = blockData; - dbus_connection_read_write_dispatch(configConnection, 0); + if (data->connection && FD_ISSET(data->fd, (fd_set *) pReadMask)) + dbus_connection_read_write_dispatch(data->connection, 0); +} + +static void +configBlockHandler(pointer data, struct timeval **tv, pointer pReadMask) +{ } static int @@ -249,68 +258,78 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure) void configInitialise() { - DBusConnection *bus = NULL; DBusError error; DBusObjectPathVTable vtable = { .message_function = configMessage }; - configConnection = NULL; + if (!configData) + configData = (struct config_data *) xcalloc(sizeof(struct config_data), 1); + if (!configData) + return; dbus_error_init(&error); - bus = dbus_bus_get(DBUS_BUS_SYSTEM, &error); - if (!bus || dbus_error_is_set(&error)) { + configData->connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); + if (!configData->connection || dbus_error_is_set(&error)) { ErrorF("[dbus] some kind of error occurred: %s (%s)\n", error.name, error.message); dbus_error_free(&error); return; } - if (!dbus_connection_get_unix_fd(bus, &configfd)) { - dbus_connection_unref(bus); + if (!dbus_connection_get_unix_fd(configData->connection, &configData->fd)) { + dbus_connection_unref(configData->connection); ErrorF("[dbus] couldn't get fd for bus\n"); dbus_error_free(&error); - configfd = -1; + configData->fd = -1; return; } - snprintf(busname, sizeof(busname), "org.x.config.display%d", atoi(display)); - if (!dbus_bus_request_name(bus, busname, 0, &error) || - dbus_error_is_set(&error)) { + snprintf(configData->busname, sizeof(configData->busname), + "org.x.config.display%d", atoi(display)); + if (!dbus_bus_request_name(configData->connection, configData->busname, + 0, &error) || dbus_error_is_set(&error)) { ErrorF("[dbus] couldn't take over org.x.config: %s (%s)\n", error.name, error.message); dbus_error_free(&error); - dbus_connection_unref(bus); - configfd = -1; + dbus_connection_unref(configData->connection); + configData->fd = -1; return; } /* blocks until we get a reply. */ - dbus_bus_add_match(bus, MATCH_RULE, &error); + dbus_bus_add_match(configData->connection, MATCH_RULE, &error); if (dbus_error_is_set(&error)) { ErrorF("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name, error.message); dbus_error_free(&error); - dbus_bus_release_name(bus, busname, &error); - dbus_connection_unref(bus); - configfd = -1; + dbus_bus_release_name(configData->connection, configData->busname, + &error); + dbus_connection_unref(configData->connection); + configData->fd = -1; return; } - snprintf(busobject, sizeof(busobject), "/org/x/config/%d", atoi(display)); - if (!dbus_connection_register_object_path(bus, busobject, &vtable, bus)) { + snprintf(configData->busobject, sizeof(configData->busobject), + "/org/x/config/%d", atoi(display)); + if (!dbus_connection_register_object_path(configData->connection, + configData->busobject, &vtable, + configData->connection)) { ErrorF("[dbus] couldn't register object path\n"); - configfd = -1; - dbus_bus_release_name(bus, busname, &error); - dbus_bus_remove_match(bus, MATCH_RULE, &error); - dbus_connection_unref(bus); + configData->fd = -1; + dbus_bus_release_name(configData->connection, configData->busname, + &error); + dbus_bus_remove_match(configData->connection, MATCH_RULE, &error); + dbus_connection_unref(configData->connection); dbus_error_free(&error); return; } - DebugF("[dbus] registered object path %s\n", busobject); + DebugF("[dbus] registered object path %s\n", configData->busobject); dbus_error_free(&error); - configConnection = bus; - AddGeneralSocket(configfd); + AddGeneralSocket(configData->fd); + + RegisterBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler, + configData); } void @@ -318,26 +337,25 @@ configFini() { DBusError error; - if (configConnection) { + if (configData) { dbus_error_init(&error); - dbus_connection_unregister_object_path(configConnection, busobject); - dbus_bus_remove_match(configConnection, MATCH_RULE, &error); - dbus_bus_release_name(configConnection, busname, &error); - dbus_connection_unref(configConnection); - RemoveGeneralSocket(configfd); - configConnection = NULL; - configfd = -1; + dbus_connection_unregister_object_path(configData->connection, + configData->busobject); + dbus_bus_remove_match(configData->connection, MATCH_RULE, &error); + dbus_bus_release_name(configData->connection, configData->busname, + &error); + dbus_connection_unref(configData->connection); + RemoveGeneralSocket(configData->fd); + RemoveBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler, + configData); + xfree(configData); + configData = NULL; dbus_error_free(&error); } } #else /* !HAVE_DBUS */ -void -configDispatch() -{ -} - void configInitialise() { diff --git a/dix/dispatch.c b/dix/dispatch.c index 0a93c3b6e..4c5a9b718 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -426,9 +426,6 @@ Dispatch(void) nready = WaitForSomething(clientReady); - /* this is an enormous hack and NEEDS TO GO AWAY. */ - configDispatch(); - #ifdef SMART_SCHEDULE if (nready && !SmartScheduleDisable) { From 8724af248cd6c93182fecd060fed09a556361080 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Sat, 2 Dec 2006 16:20:34 +0200 Subject: [PATCH 09/45] kdrive/mga: fix compiler warning Change a case that only made one test for an if, preventing the compiler warning about all other PICT_* types being unsupported. --- hw/kdrive/mga/g400_composite.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/kdrive/mga/g400_composite.c b/hw/kdrive/mga/g400_composite.c index 671e517fb..da2e8b810 100644 --- a/hw/kdrive/mga/g400_composite.c +++ b/hw/kdrive/mga/g400_composite.c @@ -286,10 +286,8 @@ mgaCheckComposite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture, if (pMaskPicture->componentAlpha) MGA_FALLBACK(("Component alpha unsupported")); - switch (pDstPicture->format) { - case PICT_a8: + if (pDstPicture->format == PICT_a8) MGA_FALLBACK(("render to A8 unsupported")); - } return TRUE; } From edabf45425f9ed79547f918cc0dfff4c268de386 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Sat, 2 Dec 2006 16:37:19 +0200 Subject: [PATCH 10/45] configure.ac: add CONFIG_LIB to Xvfb --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 851194c9f..002be624c 100644 --- a/configure.ac +++ b/configure.ac @@ -1059,7 +1059,7 @@ AC_MSG_RESULT([$XVFB]) AM_CONDITIONAL(XVFB, [test "x$XVFB" = xyes]) if test "x$XVFB" = xyes; then - XVFB_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS" + XVFB_LIBS="$FB_LIB $MI_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $XTRAP_LIB $RECORD_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $CWRAP_LIB $OS_LIB $LIBS" AC_SUBST([XVFB_LIBS]) fi From c458a70d650bd62b8f4706f022d1f3f347636db1 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 20:30:44 +0200 Subject: [PATCH 11/45] GetPointerEvents: fix typo Fix typo that resulted in inverted axes when using an absolute positioning device that didn't report y, and thus relied on the previous value. --- dix/getevents.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/getevents.c b/dix/getevents.c index 41542625b..9c4ed0ece 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -540,7 +540,7 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons, } else { if (pDev->coreEvents) - x = cp->valuator->lasty; + y = cp->valuator->lasty; else y = pDev->valuator->lasty; } From 72e7f2ac6cf0db474d0defa7918f2a3ba76c0e46 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 23:18:52 +0200 Subject: [PATCH 12/45] GetPointerEvents: always send valuator events for MotionNotify Always chase a DeviceMotionNotify event with a DeviceValuator, which is not required in the spec, but will silently break the lib if you don't include. --- dix/getevents.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/dix/getevents.c b/dix/getevents.c index 9c4ed0ece..0150d6658 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -484,6 +484,8 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons, int num_events = 0, final_valuator = 0; CARD32 ms = 0; deviceKeyButtonPointer *kbp = NULL; + /* Thanks to a broken lib, we _always_ have to chase DeviceMotionNotifies + * with DeviceValuators. */ Bool sendValuators = (type == MotionNotify || flags & POINTER_ABSOLUTE); DeviceIntPtr cp = inputInfo.pointer; int x = 0, y = 0; @@ -500,15 +502,16 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons, else num_events = 1; + if (type == MotionNotify && num_valuators <= 0) { + return 0; + } + /* Do we need to send a DeviceValuator event? */ - if ((num_valuators + first_valuator) > 2 && sendValuators) { + if (sendValuators) { if ((((num_valuators - 1) / 6) + 1) > MAX_VALUATOR_EVENTS) num_valuators = MAX_VALUATOR_EVENTS * 6; num_events += ((num_valuators - 1) / 6) + 1; } - else if (type == MotionNotify && num_valuators <= 0) { - return 0; - } final_valuator = num_valuators + first_valuator; @@ -614,7 +617,7 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons, kbp->root_y = y; events++; - if (final_valuator > 2 && sendValuators) { + if (sendValuators) { kbp->deviceid |= MORE_EVENTS; clipValuators(pDev, first_valuator, num_valuators, valuators); events = getValuatorEvents(events, pDev, first_valuator, From 0c5dab5c8eaa174f28054b9d20244a709c015210 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 23:21:15 +0200 Subject: [PATCH 13/45] config: move config.h to hotplug.h Also, move configInitialise to after OsInit, since the next commit will make it use a timer. --- dix/dispatch.c | 1 - dix/main.c | 6 +++--- include/Makefile.am | 2 +- include/{config.h => hotplug.h} | 0 4 files changed, 4 insertions(+), 5 deletions(-) rename include/{config.h => hotplug.h} (100%) diff --git a/dix/dispatch.c b/dix/dispatch.c index 4c5a9b718..0a761eb6c 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -130,7 +130,6 @@ int ProcInitialConnection(); #include "dispatch.h" #include "swaprep.h" #include "swapreq.h" -#include "config.h" #ifdef PANORAMIX #include "panoramiX.h" #include "panoramiXsrv.h" diff --git a/dix/main.c b/dix/main.c index 077fdea04..3a77533a5 100644 --- a/dix/main.c +++ b/dix/main.c @@ -98,7 +98,7 @@ Equipment Corporation. #include #include "opaque.h" #include "servermd.h" -#include "config.h" +#include "hotplug.h" #include "site.h" #include "dixfont.h" #include "extnsionst.h" @@ -309,9 +309,9 @@ main(int argc, char *argv[], char *envp[]) DPMSPowerLevel = 0; #endif InitBlockAndWakeupHandlers(); - configInitialise(); /* Perform any operating system dependent initializations you'd like */ - OsInit(); + OsInit(); + configInitialise(); if(serverGeneration == 1) { CreateWellKnownSockets(); diff --git a/include/Makefile.am b/include/Makefile.am index 9f07fa650..4289b818d 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -7,7 +7,7 @@ sdk_HEADERS = \ closure.h \ colormap.h \ colormapst.h \ - config.h \ + hotplug.h \ cursor.h \ cursorstr.h \ dix.h \ diff --git a/include/config.h b/include/hotplug.h similarity index 100% rename from include/config.h rename to include/hotplug.h From 4cba1a1ebfbdd7ab489b1b1ffb6656cbe88eb61e Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 23:21:38 +0200 Subject: [PATCH 14/45] config: bus reconnect support Add support for reconnecting to the bus when it restarts. --- config/config.c | 155 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 118 insertions(+), 37 deletions(-) diff --git a/config/config.c b/config/config.c index 9ecdbb43c..66a15fcba 100644 --- a/config/config.c +++ b/config/config.c @@ -36,10 +36,10 @@ /* the above comment lies. there is no better way. */ #include "input.h" #include "inputstr.h" -#include "config.h" +#include "hotplug.h" #include "os.h" -#define MATCH_RULE "type='method_call',interface='org.x.config.input'" +#define CONFIG_MATCH_RULE "type='method_call',interface='org.x.config.input'" #define MALFORMED_MSG "[config] malformed message, dropping" #define MALFORMED_MESSAGE() { DebugF(MALFORMED_MSG "\n"); \ @@ -50,6 +50,9 @@ ret = BadValue; \ goto unwind; } +/* How often to attempt reconnecting when we get booted off the bus. */ +#define RECONNECT_DELAY 10000 /* in ms */ + struct config_data { int fd; DBusConnection *connection; @@ -59,6 +62,8 @@ struct config_data { static struct config_data *configData; +static CARD32 configReconnect(OsTimerPtr timer, CARD32 time, pointer arg); + static void configWakeupHandler(pointer blockData, int err, pointer pReadMask) { @@ -73,6 +78,18 @@ configBlockHandler(pointer data, struct timeval **tv, pointer pReadMask) { } +static void +configTeardown(void) +{ + if (configData) { + RemoveGeneralSocket(configData->fd); + RemoveBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler, + configData); + xfree(configData); + configData = NULL; + } +} + static int configAddDevice(DBusMessage *message, DBusMessageIter *iter, DBusError *error) { @@ -226,23 +243,22 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure) ret = configAddDevice(message, &iter, &error); else if (strcmp(dbus_message_get_member(message), "remove") == 0) ret = configRemoveDevice(message, &iter, &error); - } + if (ret != BadDrawable && ret != BadAlloc) { + reply = dbus_message_new_method_return(message); + dbus_message_iter_init_append(reply, &iter); - if (ret != BadDrawable && ret != BadAlloc) { - reply = dbus_message_new_method_return(message); - dbus_message_iter_init_append(reply, &iter); + if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &ret)) { + ErrorF("[config] couldn't append to iterator\n"); + dbus_error_free(&error); + return DBUS_HANDLER_RESULT_HANDLED; + } - if (!dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &ret)) { - ErrorF("[config] couldn't append to iterator\n"); - dbus_error_free(&error); - return DBUS_HANDLER_RESULT_HANDLED; + if (!dbus_connection_send(bus, reply, NULL)) + ErrorF("[config] failed to send reply\n"); + dbus_connection_flush(bus); + + dbus_message_unref(reply); } - - if (!dbus_connection_send(bus, reply, NULL)) - ErrorF("[config] failed to send reply\n"); - dbus_connection_flush(bus); - - dbus_message_unref(reply); } dbus_error_free(&error); @@ -255,16 +271,40 @@ configMessage(DBusConnection *connection, DBusMessage *message, void *closure) return DBUS_HANDLER_RESULT_HANDLED; } -void -configInitialise() +/** + * This is a filter, which only handles the disconnected signal, which + * doesn't go to the normal message handling function. This takes + * precedence over the message handling function, so have have to be + * careful to ignore anything we don't want to deal with here. + * + * Yes, this is brutally stupid. + */ +static DBusHandlerResult +configFilter(DBusConnection *connection, DBusMessage *message, void *closure) +{ + if (dbus_message_is_signal(message, DBUS_INTERFACE_LOCAL, + "Disconnected")) { + ErrorF("[dbus] disconnected from bus\n"); + TimerSet(NULL, 0, RECONNECT_DELAY, configReconnect, NULL); + configTeardown(); + return DBUS_HANDLER_RESULT_HANDLED; + } + + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; +} + +static Bool +configSetup(void) { DBusError error; DBusObjectPathVTable vtable = { .message_function = configMessage }; if (!configData) configData = (struct config_data *) xcalloc(sizeof(struct config_data), 1); - if (!configData) - return; + if (!configData) { + ErrorF("[dbus] failed to allocate data struct.\n"); + return FALSE; + } dbus_error_init(&error); configData->connection = dbus_bus_get(DBUS_BUS_SYSTEM, &error); @@ -272,15 +312,20 @@ configInitialise() ErrorF("[dbus] some kind of error occurred: %s (%s)\n", error.name, error.message); dbus_error_free(&error); - return; + xfree(configData); + configData = NULL; + return FALSE; } + dbus_connection_set_exit_on_disconnect(configData->connection, FALSE); + if (!dbus_connection_get_unix_fd(configData->connection, &configData->fd)) { dbus_connection_unref(configData->connection); ErrorF("[dbus] couldn't get fd for bus\n"); dbus_error_free(&error); - configData->fd = -1; - return; + xfree(configData); + configData = NULL; + return FALSE; } snprintf(configData->busname, sizeof(configData->busname), @@ -291,12 +336,13 @@ configInitialise() error.name, error.message); dbus_error_free(&error); dbus_connection_unref(configData->connection); - configData->fd = -1; - return; + xfree(configData); + configData = NULL; + return FALSE; } /* blocks until we get a reply. */ - dbus_bus_add_match(configData->connection, MATCH_RULE, &error); + dbus_bus_add_match(configData->connection, CONFIG_MATCH_RULE, &error); if (dbus_error_is_set(&error)) { ErrorF("[dbus] couldn't match X.Org rule: %s (%s)\n", error.name, error.message); @@ -304,8 +350,25 @@ configInitialise() dbus_bus_release_name(configData->connection, configData->busname, &error); dbus_connection_unref(configData->connection); - configData->fd = -1; - return; + xfree(configData); + configData = NULL; + return FALSE; + } + + if (!dbus_connection_add_filter(configData->connection, configFilter, + configData, NULL)) { + + ErrorF("[dbus] couldn't add signal filter: %s (%s)\n", error.name, + error.message); + dbus_error_free(&error); + dbus_bus_release_name(configData->connection, configData->busname, + &error); + dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE, + &error); + dbus_connection_unref(configData->connection); + xfree(configData); + configData = NULL; + return FALSE; } snprintf(configData->busobject, sizeof(configData->busobject), @@ -314,13 +377,15 @@ configInitialise() configData->busobject, &vtable, configData->connection)) { ErrorF("[dbus] couldn't register object path\n"); - configData->fd = -1; dbus_bus_release_name(configData->connection, configData->busname, &error); - dbus_bus_remove_match(configData->connection, MATCH_RULE, &error); + dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE, + &error); dbus_connection_unref(configData->connection); dbus_error_free(&error); - return; + xfree(configData); + configData = NULL; + return FALSE; } DebugF("[dbus] registered object path %s\n", configData->busobject); @@ -330,6 +395,23 @@ configInitialise() RegisterBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler, configData); + + return TRUE; +} + +static CARD32 +configReconnect(OsTimerPtr timer, CARD32 time, pointer arg) +{ + if (configSetup()) + return 0; + else + return RECONNECT_DELAY; +} + +void +configInitialise() +{ + TimerSet(NULL, 0, 1, configReconnect, NULL); } void @@ -341,16 +423,15 @@ configFini() dbus_error_init(&error); dbus_connection_unregister_object_path(configData->connection, configData->busobject); - dbus_bus_remove_match(configData->connection, MATCH_RULE, &error); + dbus_connection_remove_filter(configData->connection, configFilter, + configData); + dbus_bus_remove_match(configData->connection, CONFIG_MATCH_RULE, + &error); dbus_bus_release_name(configData->connection, configData->busname, &error); dbus_connection_unref(configData->connection); - RemoveGeneralSocket(configData->fd); - RemoveBlockAndWakeupHandlers(configBlockHandler, configWakeupHandler, - configData); - xfree(configData); - configData = NULL; dbus_error_free(&error); + configTeardown(); } } From 4ea6dfb984063117eef5c2f931205b1c3eb3108b Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 23:24:39 +0200 Subject: [PATCH 15/45] whitespace police --- config/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.c b/config/config.c index 66a15fcba..523327d04 100644 --- a/config/config.c +++ b/config/config.c @@ -357,7 +357,7 @@ configSetup(void) if (!dbus_connection_add_filter(configData->connection, configFilter, configData, NULL)) { - + ErrorF("[dbus] couldn't add signal filter: %s (%s)\n", error.name, error.message); dbus_error_free(&error); From 729fca33a417ae3dfb180caf0ea8946ef9eee1df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Thu, 7 Dec 2006 12:09:18 +0100 Subject: [PATCH 16/45] Revert "xfree86 DDX: Delete DDX screens in ddxGiveUp()." This reverts commit a6381e69845f58d2b3282992b1f881015190f1bc. See https://bugs.freedesktop.org/show_bug.cgi?id=9224 . --- hw/xfree86/common/xf86Init.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 68d69c51c..ff878d59c 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -1119,9 +1119,6 @@ ddxGiveUp() DGAShutdown(); #endif - while (xf86NumScreens) - xf86DeleteScreen(xf86NumScreens - 1, 0); - xf86CloseConsole(); xf86CloseLog(); From e59aeac1ff13ea53f44dba1ac7800f37f4532ca1 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 6 Dec 2006 23:44:06 +0200 Subject: [PATCH 17/45] xfree86: remove stray debug line --- hw/xfree86/common/xf86Events.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 5469426f2..05e62f184 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -789,8 +789,6 @@ xf86ReleaseKeys(DeviceIntPtr pDev) xEvent ke; int i = 0, j = 0, nevents = 0; - ErrorF("releasekeys: called on device %s (%d)\n", pDev->name, pDev->id); - if (!pDev || !pDev->key) return; From ec84f72d077eaf2e7768a1f5398f65a5e1714d08 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Fri, 8 Dec 2006 21:31:47 +0200 Subject: [PATCH 18/45] XkbCopyKeymap: always initialise map and preserve If we don't have map or preserve in the source map, make sure the destination is initialised to NULL, and freed if it's a valid type. --- xkb/xkbUtils.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index 321bf2e1b..c9c5ed018 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -1144,6 +1144,11 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) memcpy(dtype->map, stype->map, stype->map_count * sizeof(XkbKTMapEntryRec)); } + else { + if (dtype->map && i < dst->map->num_types) + xfree(dtype->map); + dtype->map = NULL; + } if (stype->preserve) { if (stype->map_count != dtype->map_count && @@ -1168,17 +1173,22 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) memcpy(dtype->preserve, stype->preserve, stype->map_count * sizeof(XkbModsRec)); } + else { + if (dtype->preserve && i < dst->map->num_types) + xfree(dtype->preserve); + dtype->preserve = NULL; + } dtype->map_count = stype->map_count; } else { - if (dtype->map_count) { + if (dtype->map_count && i < dst->map->num_types) { if (dtype->map) xfree(dtype->map); if (dtype->preserve) xfree(dtype->preserve); - dtype->map_count = 0; } + dtype->map_count = 0; dtype->map = NULL; dtype->preserve = NULL; } From f1f8df1889ab656bb57596e2f85408f15f42cd5d Mon Sep 17 00:00:00 2001 From: "Jeremy C. Reed" Date: Fri, 8 Dec 2006 15:51:44 -0600 Subject: [PATCH 19/45] For MANDEFS, also replace __mandir__ for $(mandir) which includes the prefix. Noticed wrong path to man pages on both Ubuntu and on NetBSD with pkgsrc. --- cpprules.in | 1 + hw/xfree86/doc/man/Xorg.man.pre | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cpprules.in b/cpprules.in index 667b13322..4901ea890 100644 --- a/cpprules.in +++ b/cpprules.in @@ -34,6 +34,7 @@ MANDEFS = \ -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \ -D__drivermansuffix__=$(DRIVER_MAN_SUFFIX) \ -D__adminmansuffix__=$(ADMIN_MAN_SUFFIX) \ + -D__mandir__=$(mandir) \ -D__projectroot__=$(prefix) \ -D__xconfigfile__=$(__XCONFIGFILE__) -D__xconfigdir__=$(XCONFIGDIR) \ -D__xlogfile__=$(XLOGFILE) -D__xservername__=$(XSERVERNAME) diff --git a/hw/xfree86/doc/man/Xorg.man.pre b/hw/xfree86/doc/man/Xorg.man.pre index b7fa990bb..d91b79641 100644 --- a/hw/xfree86/doc/man/Xorg.man.pre +++ b/hw/xfree86/doc/man/Xorg.man.pre @@ -580,7 +580,7 @@ Client error message database. .B __projectroot__/lib/X11/app-defaults/\(** Client resource specifications. .TP 30 -.B __projectroot__/man/man?/\(** +.B __mandir__/man?/\(** Manual pages. .TP 30 .BI /etc/X n .hosts From fb8364bca30fe9268e807b0a9a3ebf875ee1fce2 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Sun, 10 Dec 2006 11:24:05 -0500 Subject: [PATCH 20/45] Accept EDID > 1.3 but < 2.0 if we find it, assume it's compatible. --- hw/xfree86/ddc/ddcProperty.c | 3 --- hw/xfree86/ddc/interpret_edid.c | 12 +++++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/hw/xfree86/ddc/ddcProperty.c b/hw/xfree86/ddc/ddcProperty.c index 11b5e26ed..13083dd50 100644 --- a/hw/xfree86/ddc/ddcProperty.c +++ b/hw/xfree86/ddc/ddcProperty.c @@ -32,9 +32,6 @@ #include "propertyst.h" #include "xf86DDC.h" - - - #define EDID1_ATOM_NAME "XFree86_DDC_EDID1_RAWDATA" #define EDID2_ATOM_NAME "XFree86_DDC_EDID2_RAWDATA" #define VDIF_ATOM_NAME "XFree86_DDC_VDIF_RAWDATA" diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c index c58bb2fe1..7b4b2b9ec 100644 --- a/hw/xfree86/ddc/interpret_edid.c +++ b/hw/xfree86/ddc/interpret_edid.c @@ -304,16 +304,18 @@ get_detailed_timing_section(Uchar *c, struct detailed_timings *r) r->misc = MISC; } +#define MAX_EDID_MINOR 3 static Bool validate_version(int scrnIndex, struct edid_version *r) { if (r->version != 1) return FALSE; - if (r->revision > 3) { - xf86DrvMsg(scrnIndex, X_ERROR,"EDID Version 1.%i not yet supported\n", - r->revision); - return FALSE; - } + + if (r->revision > MAX_EDID_MINOR) + xf86DrvMsg(scrnIndex, X_WARNING, + "Assuming version 1.%d is compatible with 1.%d\n", + r->revision, MAX_EDID_MINOR); + return TRUE; } From 27d4b84f268ac21601f7f52a7e257f70753396b3 Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Mon, 11 Dec 2006 14:50:08 +0000 Subject: [PATCH 21/45] Fix Tooltip from minimized clients Bug #3678 (Colin Harrison) --- hw/xwin/winmultiwindowwindow.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/hw/xwin/winmultiwindowwindow.c b/hw/xwin/winmultiwindowwindow.c index dc8e38bae..037c881b4 100644 --- a/hw/xwin/winmultiwindowwindow.c +++ b/hw/xwin/winmultiwindowwindow.c @@ -982,11 +982,10 @@ winAdjustXWindow (WindowPtr pWin, HWND hwnd) /* * If the Windows window is minimized, its WindowRect has * meaningless values so we don't adjust X window to it. - * Instead we put the X window to the bottom in Z order to - * be obscured by other windows. */ - vlist[0] = Below; - return ConfigureWindow (pWin, CWStackMode, vlist, wClient(pWin)); + vlist[0] = 0; + vlist[1] = 0; + return ConfigureWindow (pWin, CWX | CWY, vlist, wClient(pWin)); } pDraw = &pWin->drawable; From 792e0f71c6a435b2e28f8a4cdcc790f3b982e62c Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Mon, 11 Dec 2006 14:54:49 +0000 Subject: [PATCH 22/45] Fix Xming fails to use xkb bug bug #5049 (Colin Harrison) --- hw/xwin/InitOutput.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index b64eee9c7..996498090 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -694,6 +694,7 @@ winFixupPaths (void) if (sizeof(xkbbasedir) > 0) xkbbasedir[sizeof(xkbbasedir)-1] = 0; XkbBaseDirectory = xkbbasedir; + XkbBinDirectory = xkbbasedir } #endif /* XKB */ #endif /* RELOCATE_PROJECTROOT */ From 81281cb298a5825bc7a2e692375a86199293bbbe Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Tue, 12 Dec 2006 11:28:24 +0000 Subject: [PATCH 23/45] Fix bad commit --- hw/xwin/InitOutput.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index 996498090..39a5eda7f 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -694,7 +694,7 @@ winFixupPaths (void) if (sizeof(xkbbasedir) > 0) xkbbasedir[sizeof(xkbbasedir)-1] = 0; XkbBaseDirectory = xkbbasedir; - XkbBinDirectory = xkbbasedir + XkbBinDirectory = basedir; } #endif /* XKB */ #endif /* RELOCATE_PROJECTROOT */ From b88ad820fac81d0dfd557a384bf0406e8893e7af Mon Sep 17 00:00:00 2001 From: Alan Hourihane Date: Wed, 13 Dec 2006 12:13:11 +0000 Subject: [PATCH 24/45] Set Int10Current->Tag for the linux native int10 module Fixes bug #9296 (cherry picked from 731952c561a3972d09d1315f4fd31466e459ccb9 commit) --- hw/xfree86/int10/generic.c | 2 +- hw/xfree86/os-support/linux/int10/linux.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/int10/generic.c b/hw/xfree86/int10/generic.c index 46a1179de..d86372780 100644 --- a/hw/xfree86/int10/generic.c +++ b/hw/xfree86/int10/generic.c @@ -98,7 +98,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags) base = INTPriv(pInt)->base = xnfalloc(SYS_BIOS); pvp = xf86GetPciInfoForEntity(entityIndex); - if (pvp) pInt->Tag = ((pciConfigPtr)(pvp->thisCard))->tag; + if (pvp) pInt->Tag = pciTag(pvp->bus, pvp->device, pvp->func); /* * we need to map video RAM MMIO as some chipsets map mmio diff --git a/hw/xfree86/os-support/linux/int10/linux.c b/hw/xfree86/os-support/linux/int10/linux.c index 6c8b230e7..dd1637a23 100644 --- a/hw/xfree86/os-support/linux/int10/linux.c +++ b/hw/xfree86/os-support/linux/int10/linux.c @@ -90,6 +90,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags) legacyVGARec vga; xf86int10BiosLocation bios; Bool videoBiosMapped = FALSE; + pciVideoPtr pvp; if (int10Generation != serverGeneration) { counter = 0; @@ -151,6 +152,8 @@ xf86ExtendedInitInt10(int entityIndex, int Flags) pInt = (xf86Int10InfoPtr)xnfcalloc(1, sizeof(xf86Int10InfoRec)); pInt->scrnIndex = screen; pInt->entityIndex = entityIndex; + pvp = xf86GetPciInfoForEntity(entityIndex); + if (pvp) pInt->Tag = pciTag(pvp->bus, pvp->device, pvp->func); if (!xf86Int10ExecSetup(pInt)) goto error0; pInt->mem = &linuxMem; From 6c46645cfc1afda8aeabfe0ed4d9342673b702f1 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 14:45:42 -0500 Subject: [PATCH 25/45] Naming change: Security*Access -> Dix*Access --- Xext/appgroup.c | 4 +- Xext/cup.c | 2 +- Xext/panoramiXprocs.c | 172 ++++++++++++++++---------------- Xext/saver.c | 10 +- Xext/security.c | 12 +-- Xext/shape.c | 22 ++-- Xext/shm.c | 6 +- Xext/sync.c | 16 +-- Xext/xf86bigfont.c | 4 +- Xext/xprint.c | 26 ++--- Xext/xvdisp.c | 30 +++--- damageext/damageext.c | 10 +- dbe/dbe.c | 12 +-- dix/colormap.c | 4 +- dix/cursor.c | 4 +- dix/dispatch.c | 118 +++++++++++----------- dix/dixfonts.c | 8 +- dix/dixutils.c | 6 +- dix/events.c | 38 +++---- dix/gc.c | 8 +- dix/property.c | 20 ++-- dix/resource.c | 4 +- dix/window.c | 10 +- hw/darwin/quartz/applewm.c | 6 +- hw/darwin/quartz/xpr/appledri.c | 4 +- hw/dmx/dmx.c | 12 +-- hw/dmx/dmxpict.c | 24 ++--- hw/dmx/glxProxy/glxcmds.c | 24 ++--- hw/xfree86/dri/xf86dri.c | 6 +- hw/xwin/winclipboardwrappers.c | 2 +- hw/xwin/winwindowswm.c | 6 +- include/dix.h | 10 +- include/resource.h | 9 +- os/access.c | 2 +- randr/rrcrtc.c | 8 +- randr/rrdispatch.c | 4 +- randr/rroutput.c | 2 +- randr/rrproperty.c | 14 +-- randr/rrscreen.c | 10 +- render/picture.c | 4 +- render/render.c | 122 +++++++++++----------- xfixes/cursor.c | 12 +-- xfixes/region.c | 46 ++++----- xfixes/saveset.c | 2 +- xfixes/select.c | 2 +- 45 files changed, 439 insertions(+), 438 deletions(-) diff --git a/Xext/appgroup.c b/Xext/appgroup.c index 650dc0ab8..4f3000569 100644 --- a/Xext/appgroup.c +++ b/Xext/appgroup.c @@ -432,7 +432,7 @@ int ProcXagDestroy( REQUEST_SIZE_MATCH (xXagDestroyReq); pAppGrp = (AppGroupPtr)SecurityLookupIDByType (client, - (XID)stuff->app_group, RT_APPGROUP, SecurityReadAccess); + (XID)stuff->app_group, RT_APPGROUP, DixReadAccess); if (!pAppGrp) return XagBadAppGroup; FreeResource ((XID)stuff->app_group, RT_NONE); if (--XagCallbackRefCount == 0) @@ -451,7 +451,7 @@ int ProcXagGetAttr( REQUEST_SIZE_MATCH (xXagGetAttrReq); pAppGrp = (AppGroupPtr)SecurityLookupIDByType (client, - (XID)stuff->app_group, RT_APPGROUP, SecurityReadAccess); + (XID)stuff->app_group, RT_APPGROUP, DixReadAccess); if (!pAppGrp) return XagBadAppGroup; rep.type = X_Reply; rep.length = 0; diff --git a/Xext/cup.c b/Xext/cup.c index 10d13bae0..6bfa27837 100644 --- a/Xext/cup.c +++ b/Xext/cup.c @@ -227,7 +227,7 @@ int ProcStoreColors( REQUEST_AT_LEAST_SIZE (xXcupStoreColorsReq); pcmp = (ColormapPtr) SecurityLookupIDByType (client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { int ncolors, n; diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 8bb4c593d..683308425 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -91,7 +91,7 @@ int PanoramiXCreateWindow(ClientPtr client) return BadLength; if (!(parent = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->parent, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->parent, XRT_WINDOW, DixWriteAccess))) return BadWindow; if(stuff->class == CopyFromParent) @@ -105,7 +105,7 @@ int PanoramiXCreateWindow(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pback_offset); if ((tmp != None) && (tmp != ParentRelative)) { if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -114,7 +114,7 @@ int PanoramiXCreateWindow(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pbord_offset); if (tmp != CopyFromParent) { if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -123,7 +123,7 @@ int PanoramiXCreateWindow(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + cmap_offset); if ((tmp != CopyFromParent) && (tmp != None)) { if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_COLORMAP, SecurityReadAccess))) + client, tmp, XRT_COLORMAP, DixReadAccess))) return BadColor; } } @@ -192,7 +192,7 @@ int PanoramiXChangeWindowAttributes(ClientPtr client) return BadLength; if (!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->window, XRT_WINDOW, DixWriteAccess))) return BadWindow; if((win->u.win.class == InputOnly) && @@ -204,7 +204,7 @@ int PanoramiXChangeWindowAttributes(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pback_offset); if ((tmp != None) && (tmp != ParentRelative)) { if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -213,7 +213,7 @@ int PanoramiXChangeWindowAttributes(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pbord_offset); if (tmp != CopyFromParent) { if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -222,7 +222,7 @@ int PanoramiXChangeWindowAttributes(ClientPtr client) tmp = *((CARD32 *) &stuff[1] + cmap_offset); if ((tmp != CopyFromParent) && (tmp != None)) { if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_COLORMAP, SecurityReadAccess))) + client, tmp, XRT_COLORMAP, DixReadAccess))) return BadColor; } } @@ -251,7 +251,7 @@ int PanoramiXDestroyWindow(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityDestroyAccess))) + client, stuff->id, XRT_WINDOW, DixDestroyAccess))) return BadWindow; FOR_NSCREENS_BACKWARD(j) { @@ -276,7 +276,7 @@ int PanoramiXDestroySubwindows(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityDestroyAccess))) + client, stuff->id, XRT_WINDOW, DixDestroyAccess))) return BadWindow; FOR_NSCREENS_BACKWARD(j) { @@ -301,7 +301,7 @@ int PanoramiXChangeSaveSet(ClientPtr client) REQUEST_SIZE_MATCH(xChangeSaveSetReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityReadAccess))) + client, stuff->window, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS_BACKWARD(j) { @@ -325,11 +325,11 @@ int PanoramiXReparentWindow(ClientPtr client) REQUEST_SIZE_MATCH(xReparentWindowReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->window, XRT_WINDOW, DixWriteAccess))) return BadWindow; if(!(parent = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->parent, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->parent, XRT_WINDOW, DixWriteAccess))) return BadWindow; x = stuff->x; @@ -360,7 +360,7 @@ int PanoramiXMapWindow(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityReadAccess))) + client, stuff->id, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS_FORWARD(j) { @@ -382,7 +382,7 @@ int PanoramiXMapSubwindows(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityReadAccess))) + client, stuff->id, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS_FORWARD(j) { @@ -404,7 +404,7 @@ int PanoramiXUnmapWindow(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityReadAccess))) + client, stuff->id, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS_FORWARD(j) { @@ -426,7 +426,7 @@ int PanoramiXUnmapSubwindows(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_WINDOW, SecurityReadAccess))) + client, stuff->id, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS_FORWARD(j) { @@ -457,11 +457,11 @@ int PanoramiXConfigureWindow(ClientPtr client) /* because we need the parent */ if (!(pWin = (WindowPtr)SecurityLookupIDByType( - client, stuff->window, RT_WINDOW, SecurityWriteAccess))) + client, stuff->window, RT_WINDOW, DixWriteAccess))) return BadWindow; if (!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->window, XRT_WINDOW, DixWriteAccess))) return BadWindow; if ((Mask)stuff->mask & CWSibling) { @@ -469,7 +469,7 @@ int PanoramiXConfigureWindow(ClientPtr client) sib_offset = Ones((Mask)stuff->mask & (CWSibling - 1)); if ((tmp = *((CARD32 *) &stuff[1] + sib_offset))) { if(!(sib = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_WINDOW, SecurityReadAccess))) + client, tmp, XRT_WINDOW, DixReadAccess))) return BadWindow; } } @@ -514,7 +514,7 @@ int PanoramiXCirculateWindow(ClientPtr client) REQUEST_SIZE_MATCH(xCirculateWindowReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->window, XRT_WINDOW, DixWriteAccess))) return BadWindow; FOR_NSCREENS_FORWARD(j) { @@ -579,11 +579,11 @@ int PanoramiXTranslateCoords(ClientPtr client) REQUEST_SIZE_MATCH(xTranslateCoordsReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client, - SecurityReadAccess); + DixReadAccess); if (!pDst) return(BadWindow); rep.type = X_Reply; @@ -655,7 +655,7 @@ int PanoramiXCreatePixmap(ClientPtr client) client->errorValue = stuff->pid; if(!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityReadAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixReadAccess))) return BadDrawable; if(!(newPix = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes)))) @@ -694,7 +694,7 @@ int PanoramiXFreePixmap(ClientPtr client) client->errorValue = stuff->id; if(!(pix = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_PIXMAP, SecurityDestroyAccess))) + client, stuff->id, XRT_PIXMAP, DixDestroyAccess))) return BadPixmap; FOR_NSCREENS_BACKWARD(j) { @@ -730,14 +730,14 @@ int PanoramiXCreateGC(ClientPtr client) return BadLength; if (!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityReadAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixReadAccess))) return BadDrawable; if ((Mask)stuff->mask & GCTile) { tile_offset = Ones((Mask)stuff->mask & (GCTile - 1)); if ((tmp = *((CARD32 *) &stuff[1] + tile_offset))) { if(!(tile = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -745,7 +745,7 @@ int PanoramiXCreateGC(ClientPtr client) stip_offset = Ones((Mask)stuff->mask & (GCStipple - 1)); if ((tmp = *((CARD32 *) &stuff[1] + stip_offset))) { if(!(stip = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -753,7 +753,7 @@ int PanoramiXCreateGC(ClientPtr client) clip_offset = Ones((Mask)stuff->mask & (GCClipMask - 1)); if ((tmp = *((CARD32 *) &stuff[1] + clip_offset))) { if(!(clip = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -805,14 +805,14 @@ int PanoramiXChangeGC(ClientPtr client) return BadLength; if (!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if ((Mask)stuff->mask & GCTile) { tile_offset = Ones((Mask)stuff->mask & (GCTile - 1)); if ((tmp = *((CARD32 *) &stuff[1] + tile_offset))) { if(!(tile = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -820,7 +820,7 @@ int PanoramiXChangeGC(ClientPtr client) stip_offset = Ones((Mask)stuff->mask & (GCStipple - 1)); if ((tmp = *((CARD32 *) &stuff[1] + stip_offset))) { if(!(stip = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -828,7 +828,7 @@ int PanoramiXChangeGC(ClientPtr client) clip_offset = Ones((Mask)stuff->mask & (GCClipMask - 1)); if ((tmp = *((CARD32 *) &stuff[1] + clip_offset))) { if(!(clip = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -859,11 +859,11 @@ int PanoramiXCopyGC(ClientPtr client) REQUEST_SIZE_MATCH(xCopyGCReq); if(!(srcGC = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->srcGC, XRT_GC, SecurityReadAccess))) + client, stuff->srcGC, XRT_GC, DixReadAccess))) return BadGC; if(!(dstGC = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->dstGC, XRT_GC, SecurityWriteAccess))) + client, stuff->dstGC, XRT_GC, DixWriteAccess))) return BadGC; FOR_NSCREENS(j) { @@ -886,7 +886,7 @@ int PanoramiXSetDashes(ClientPtr client) REQUEST_FIXED_SIZE(xSetDashesReq, stuff->nDashes); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityWriteAccess))) + client, stuff->gc, XRT_GC, DixWriteAccess))) return BadGC; FOR_NSCREENS_BACKWARD(j) { @@ -908,7 +908,7 @@ int PanoramiXSetClipRectangles(ClientPtr client) REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityWriteAccess))) + client, stuff->gc, XRT_GC, DixWriteAccess))) return BadGC; FOR_NSCREENS_BACKWARD(j) { @@ -930,7 +930,7 @@ int PanoramiXFreeGC(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_GC, SecurityDestroyAccess))) + client, stuff->id, XRT_GC, DixDestroyAccess))) return BadGC; FOR_NSCREENS_BACKWARD(j) { @@ -956,7 +956,7 @@ int PanoramiXClearToBackground(ClientPtr client) REQUEST_SIZE_MATCH(xClearAreaReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->window, XRT_WINDOW, DixWriteAccess))) return BadWindow; x = stuff->x; @@ -998,13 +998,13 @@ int PanoramiXCopyArea(ClientPtr client) REQUEST_SIZE_MATCH(xCopyAreaReq); if(!(src = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->srcDrawable, XRC_DRAWABLE, SecurityReadAccess))) + client, stuff->srcDrawable, XRC_DRAWABLE, DixReadAccess))) return BadDrawable; srcShared = IS_SHARED_PIXMAP(src); if(!(dst = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->dstDrawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->dstDrawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; dstShared = IS_SHARED_PIXMAP(dst); @@ -1013,7 +1013,7 @@ int PanoramiXCopyArea(ClientPtr client) return (* SavedProcVector[X_CopyArea])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if((dst->type == XRT_WINDOW) && dst->u.win.root) @@ -1082,7 +1082,7 @@ int PanoramiXCopyArea(ClientPtr client) VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client, - SecurityReadAccess); + DixReadAccess); if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) { client->errorValue = stuff->dstDrawable; @@ -1146,13 +1146,13 @@ int PanoramiXCopyPlane(ClientPtr client) REQUEST_SIZE_MATCH(xCopyPlaneReq); if(!(src = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->srcDrawable, XRC_DRAWABLE, SecurityReadAccess))) + client, stuff->srcDrawable, XRC_DRAWABLE, DixReadAccess))) return BadDrawable; srcShared = IS_SHARED_PIXMAP(src); if(!(dst = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->dstDrawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->dstDrawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; dstShared = IS_SHARED_PIXMAP(dst); @@ -1161,7 +1161,7 @@ int PanoramiXCopyPlane(ClientPtr client) return (* SavedProcVector[X_CopyPlane])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if((dst->type == XRT_WINDOW) && dst->u.win.root) @@ -1188,7 +1188,7 @@ int PanoramiXCopyPlane(ClientPtr client) VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client, - SecurityReadAccess); + DixReadAccess); if (pdstDraw->pScreen != psrcDraw->pScreen) { client->errorValue = stuff->dstDrawable; return (BadMatch); @@ -1246,14 +1246,14 @@ int PanoramiXPolyPoint(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyPointReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyPoint])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1304,14 +1304,14 @@ int PanoramiXPolyLine(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyLineReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyLine])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1362,14 +1362,14 @@ int PanoramiXPolySegment(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolySegmentReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolySegment])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1424,14 +1424,14 @@ int PanoramiXPolyRectangle(ClientPtr client) if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyRectangle])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1484,14 +1484,14 @@ int PanoramiXPolyArc(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyArcReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyArc])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1542,14 +1542,14 @@ int PanoramiXFillPoly(ClientPtr client) REQUEST_AT_LEAST_SIZE(xFillPolyReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_FillPoly])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1601,14 +1601,14 @@ int PanoramiXPolyFillRectangle(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyFillRectangle])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1660,14 +1660,14 @@ int PanoramiXPolyFillArc(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyFillArcReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyFillArc])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1718,14 +1718,14 @@ int PanoramiXPutImage(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPutImageReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PutImage])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1769,7 +1769,7 @@ int PanoramiXGetImage(ClientPtr client) } if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(draw->type == XRT_PIXMAP) @@ -1909,14 +1909,14 @@ PanoramiXPolyText8(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyTextReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyText8])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1948,14 +1948,14 @@ PanoramiXPolyText16(ClientPtr client) REQUEST_AT_LEAST_SIZE(xPolyTextReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_PolyText16])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1987,14 +1987,14 @@ int PanoramiXImageText8(ClientPtr client) REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_ImageText8])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -2026,14 +2026,14 @@ int PanoramiXImageText16(ClientPtr client) REQUEST_FIXED_SIZE(xImageTextReq, stuff->nChars << 1); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(IS_SHARED_PIXMAP(draw)) return (*SavedProcVector[X_ImageText16])(client); if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -2064,7 +2064,7 @@ int PanoramiXCreateColormap(ClientPtr client) REQUEST_SIZE_MATCH(xCreateColormapReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->window, XRT_WINDOW, SecurityReadAccess))) + client, stuff->window, XRT_WINDOW, DixReadAccess))) return BadWindow; if(!stuff->visual || (stuff->visual > 255)) @@ -2107,7 +2107,7 @@ int PanoramiXFreeColormap(ClientPtr client) client->errorValue = stuff->id; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_COLORMAP, SecurityDestroyAccess))) + client, stuff->id, XRT_COLORMAP, DixDestroyAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j) { @@ -2136,7 +2136,7 @@ PanoramiXCopyColormapAndFree(ClientPtr client) if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( client, stuff->srcCmap, XRT_COLORMAP, - SecurityReadAccess | SecurityWriteAccess))) + DixReadAccess | DixWriteAccess))) return BadColor; if(!(newCmap = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes)))) @@ -2174,7 +2174,7 @@ int PanoramiXInstallColormap(ClientPtr client) client->errorValue = stuff->id; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_COLORMAP, SecurityReadAccess))) + client, stuff->id, XRT_COLORMAP, DixReadAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2197,7 +2197,7 @@ int PanoramiXUninstallColormap(ClientPtr client) client->errorValue = stuff->id; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->id, XRT_COLORMAP, SecurityReadAccess))) + client, stuff->id, XRT_COLORMAP, DixReadAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j) { @@ -2220,7 +2220,7 @@ int PanoramiXAllocColor(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2243,7 +2243,7 @@ int PanoramiXAllocNamedColor(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2266,7 +2266,7 @@ int PanoramiXAllocColorCells(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2289,7 +2289,7 @@ int PanoramiXAllocColorPlanes(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2313,7 +2313,7 @@ int PanoramiXFreeColors(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j) { @@ -2335,7 +2335,7 @@ int PanoramiXStoreColors(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ @@ -2358,7 +2358,7 @@ int PanoramiXStoreNamedColor(ClientPtr client) client->errorValue = stuff->cmap; if(!(cmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->cmap, XRT_COLORMAP, SecurityWriteAccess))) + client, stuff->cmap, XRT_COLORMAP, DixWriteAccess))) return BadColor; FOR_NSCREENS_BACKWARD(j){ diff --git a/Xext/saver.c b/Xext/saver.c index 1d223ae53..d6b537a78 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -1279,7 +1279,7 @@ ProcScreenSaverSetAttributes (ClientPtr client) REQUEST_AT_LEAST_SIZE (xScreenSaverSetAttributesReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; len = stuff->length - (sizeof(xScreenSaverSetAttributesReq) >> 2); @@ -1291,7 +1291,7 @@ ProcScreenSaverSetAttributes (ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pback_offset); if ((tmp != None) && (tmp != ParentRelative)) { if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -1301,7 +1301,7 @@ ProcScreenSaverSetAttributes (ClientPtr client) tmp = *((CARD32 *) &stuff[1] + pbord_offset); if (tmp != CopyFromParent) { if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_PIXMAP, SecurityReadAccess))) + client, tmp, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } } @@ -1311,7 +1311,7 @@ ProcScreenSaverSetAttributes (ClientPtr client) tmp = *((CARD32 *) &stuff[1] + cmap_offset); if ((tmp != CopyFromParent) && (tmp != None)) { if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType( - client, tmp, XRT_COLORMAP, SecurityReadAccess))) + client, tmp, XRT_COLORMAP, DixReadAccess))) return BadColor; } } @@ -1351,7 +1351,7 @@ ProcScreenSaverUnsetAttributes (ClientPtr client) int i; if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; for(i = PanoramiXNumScreens - 1; i > 0; i--) { diff --git a/Xext/security.c b/Xext/security.c index 572f81196..4fbf6f283 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -600,7 +600,7 @@ ProcSecurityRevokeAuthorization( REQUEST_SIZE_MATCH(xSecurityRevokeAuthorizationReq); pAuth = (SecurityAuthorizationPtr)SecurityLookupIDByType(client, - stuff->authId, SecurityAuthorizationResType, SecurityDestroyAccess); + stuff->authId, SecurityAuthorizationResType, DixDestroyAccess); if (!pAuth) return SecurityErrorBase + XSecurityBadAuthorization; @@ -966,7 +966,7 @@ CALLBACK(SecurityCheckResourceIDAccess) int cid, reqtype; if (TRUSTLEVEL(client) == XSecurityClientTrusted || - SecurityUnknownAccess == access_mode) + DixUnknownAccess == access_mode) return; /* for compatibility, we have to allow access */ cid = CLIENT_ID(id); @@ -1217,7 +1217,7 @@ CALLBACK(SecurityCheckHostlistAccess) if (TRUSTLEVEL(rec->client) != XSecurityClientTrusted) { rec->rval = FALSE; - if (rec->access_mode == SecurityWriteAccess) + if (rec->access_mode == DixWriteAccess) SecurityAudit("client %d attempted to change host access\n", rec->client->index); else @@ -1798,11 +1798,11 @@ CALLBACK(SecurityCheckPropertyAccess) * executed a continue, which will skip the follwing code. */ action = XaceAllowOperation; - if (access_mode & SecurityReadAccess) + if (access_mode & DixReadAccess) action = max(action, pacl->readAction); - if (access_mode & SecurityWriteAccess) + if (access_mode & DixWriteAccess) action = max(action, pacl->writeAction); - if (access_mode & SecurityDestroyAccess) + if (access_mode & DixDestroyAccess) action = max(action, pacl->destroyAction); break; } /* end for each pacl */ diff --git a/Xext/shape.c b/Xext/shape.c index 4d9d3fb5b..4a798da7c 100644 --- a/Xext/shape.c +++ b/Xext/shape.c @@ -390,7 +390,7 @@ ProcPanoramiXShapeRectangles( REQUEST_AT_LEAST_SIZE (xShapeRectanglesReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->dest, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->dest, XRT_WINDOW, DixWriteAccess))) return BadWindow; FOR_NSCREENS(j) { @@ -422,7 +422,7 @@ ProcShapeMask (client) REQUEST_SIZE_MATCH (xShapeMaskReq); UpdateCurrentTime(); - pWin = SecurityLookupWindow (stuff->dest, client, SecurityWriteAccess); + pWin = SecurityLookupWindow (stuff->dest, client, DixWriteAccess); if (!pWin) return BadWindow; switch (stuff->destKind) { @@ -444,7 +444,7 @@ ProcShapeMask (client) srcRgn = 0; else { pPixmap = (PixmapPtr) SecurityLookupIDByType(client, stuff->src, - RT_PIXMAP, SecurityReadAccess); + RT_PIXMAP, DixReadAccess); if (!pPixmap) return BadPixmap; if (pPixmap->drawable.pScreen != pScreen || @@ -488,12 +488,12 @@ ProcPanoramiXShapeMask( REQUEST_SIZE_MATCH (xShapeMaskReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->dest, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->dest, XRT_WINDOW, DixWriteAccess))) return BadWindow; if(stuff->src != None) { if(!(pmap = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->src, XRT_PIXMAP, SecurityReadAccess))) + client, stuff->src, XRT_PIXMAP, DixReadAccess))) return BadPixmap; } else pmap = NULL; @@ -616,11 +616,11 @@ ProcPanoramiXShapeCombine( REQUEST_AT_LEAST_SIZE (xShapeCombineReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->dest, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->dest, XRT_WINDOW, DixWriteAccess))) return BadWindow; if(!(win2 = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->src, XRT_WINDOW, SecurityReadAccess))) + client, stuff->src, XRT_WINDOW, DixReadAccess))) return BadWindow; FOR_NSCREENS(j) { @@ -688,7 +688,7 @@ ProcPanoramiXShapeOffset( REQUEST_AT_LEAST_SIZE (xShapeOffsetReq); if(!(win = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->dest, XRT_WINDOW, SecurityWriteAccess))) + client, stuff->dest, XRT_WINDOW, DixWriteAccess))) return BadWindow; FOR_NSCREENS(j) { @@ -822,11 +822,11 @@ ProcShapeSelectInput (client) XID clientResource; REQUEST_SIZE_MATCH (xShapeSelectInputReq); - pWin = SecurityLookupWindow (stuff->window, client, SecurityWriteAccess); + pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess); if (!pWin) return BadWindow; pHead = (ShapeEventPtr *)SecurityLookupIDByType(client, - pWin->drawable.id, EventType, SecurityWriteAccess); + pWin->drawable.id, EventType, DixWriteAccess); switch (stuff->enable) { case xTrue: if (pHead) { @@ -999,7 +999,7 @@ ProcShapeInputSelected (client) if (!pWin) return BadWindow; pHead = (ShapeEventPtr *) SecurityLookupIDByType(client, - pWin->drawable.id, EventType, SecurityReadAccess); + pWin->drawable.id, EventType, DixReadAccess); enabled = xFalse; if (pHead) { for (pShapeEvent = *pHead; diff --git a/Xext/shm.c b/Xext/shm.c index be79862cb..0c2299a61 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -571,11 +571,11 @@ ProcPanoramiXShmPutImage(register ClientPtr client) REQUEST_SIZE_MATCH(xShmPutImageReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -621,7 +621,7 @@ ProcPanoramiXShmGetImage(ClientPtr client) } if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if (draw->type == XRT_PIXMAP) diff --git a/Xext/sync.c b/Xext/sync.c index 7def85b94..1d899348b 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -436,7 +436,7 @@ SyncInitTrigger(client, pTrigger, counter, changes) if (counter == None) pCounter = NULL; else if (!(pCounter = (SyncCounter *)SecurityLookupIDByType( - client, counter, RTCounter, SecurityReadAccess))) + client, counter, RTCounter, DixReadAccess))) { client->errorValue = counter; return SyncErrorBase + XSyncBadCounter; @@ -1550,7 +1550,7 @@ ProcSyncSetCounter(client) REQUEST_SIZE_MATCH(xSyncSetCounterReq); pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->cid, - RTCounter, SecurityWriteAccess); + RTCounter, DixWriteAccess); if (pCounter == NULL) { client->errorValue = stuff->cid; @@ -1583,7 +1583,7 @@ ProcSyncChangeCounter(client) REQUEST_SIZE_MATCH(xSyncChangeCounterReq); pCounter = (SyncCounter *) SecurityLookupIDByType(client, stuff->cid, - RTCounter, SecurityWriteAccess); + RTCounter, DixWriteAccess); if (pCounter == NULL) { client->errorValue = stuff->cid; @@ -1621,7 +1621,7 @@ ProcSyncDestroyCounter(client) REQUEST_SIZE_MATCH(xSyncDestroyCounterReq); pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->counter, - RTCounter, SecurityDestroyAccess); + RTCounter, DixDestroyAccess); if (pCounter == NULL) { client->errorValue = stuff->counter; @@ -1767,7 +1767,7 @@ ProcSyncQueryCounter(client) REQUEST_SIZE_MATCH(xSyncQueryCounterReq); pCounter = (SyncCounter *)SecurityLookupIDByType(client, stuff->counter, - RTCounter, SecurityReadAccess); + RTCounter, DixReadAccess); if (pCounter == NULL) { client->errorValue = stuff->counter; @@ -1896,7 +1896,7 @@ ProcSyncChangeAlarm(client) REQUEST_AT_LEAST_SIZE(xSyncChangeAlarmReq); if (!(pAlarm = (SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm, - RTAlarm, SecurityWriteAccess))) + RTAlarm, DixWriteAccess))) { client->errorValue = stuff->alarm; return SyncErrorBase + XSyncBadAlarm; @@ -1937,7 +1937,7 @@ ProcSyncQueryAlarm(client) REQUEST_SIZE_MATCH(xSyncQueryAlarmReq); pAlarm = (SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm, - RTAlarm, SecurityReadAccess); + RTAlarm, DixReadAccess); if (!pAlarm) { client->errorValue = stuff->alarm; @@ -1997,7 +1997,7 @@ ProcSyncDestroyAlarm(client) REQUEST_SIZE_MATCH(xSyncDestroyAlarmReq); if (!((SyncAlarm *)SecurityLookupIDByType(client, stuff->alarm, - RTAlarm, SecurityDestroyAccess))) + RTAlarm, DixDestroyAccess))) { client->errorValue = stuff->alarm; return SyncErrorBase + XSyncBadAlarm; diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c index bd250569e..44647060a 100644 --- a/Xext/xf86bigfont.c +++ b/Xext/xf86bigfont.c @@ -445,11 +445,11 @@ ProcXF86BigfontQueryFont( #endif client->errorValue = stuff->id; /* EITHER font or gc */ pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT, - SecurityReadAccess); + DixReadAccess); if (!pFont) { /* can't use VERIFY_GC because it might return BadGC */ GC *pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC, - SecurityReadAccess); + DixReadAccess); if (!pGC) { client->errorValue = stuff->id; return BadFont; /* procotol spec says only error is BadFont */ diff --git a/Xext/xprint.c b/Xext/xprint.c index 29d3262f9..669ad277d 100644 --- a/Xext/xprint.c +++ b/Xext/xprint.c @@ -749,7 +749,7 @@ ProcXpGetPageDimensions(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -811,7 +811,7 @@ ProcXpSetImageResolution(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityWriteAccess)) + DixWriteAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -859,7 +859,7 @@ ProcXpGetImageResolution(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -1068,7 +1068,7 @@ ProcXpSetContext(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityWriteAccess)) + DixWriteAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -1141,7 +1141,7 @@ ProcXpDestroyContext(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityDestroyAccess)) + DixDestroyAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -1167,7 +1167,7 @@ ProcXpGetContextScreen(ClientPtr client) if((pContext =(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) return XpErrorBase+XPBadContext; @@ -1853,7 +1853,7 @@ ProcXpStartPage(ClientPtr client) return XpErrorBase+XPBadSequence; pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin || pWin->drawable.pScreen->myNum != pContext->screenNum) return BadWindow; @@ -1994,7 +1994,7 @@ ProcXpGetDocumentData(ClientPtr client) if((pContext = (XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityWriteAccess)) + DixWriteAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -2077,7 +2077,7 @@ ProcXpGetAttributes(ClientPtr client) client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -2149,7 +2149,7 @@ ProcXpSetAttributes(ClientPtr client) client, stuff->printContext, RTcontext, - SecurityWriteAccess)) + DixWriteAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -2229,7 +2229,7 @@ ProcXpGetOneAttribute(ClientPtr client) client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -2300,7 +2300,7 @@ ProcXpSelectInput(ClientPtr client) if((pContext=(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityWriteAccess)) + DixWriteAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; @@ -2336,7 +2336,7 @@ ProcXpInputSelected(ClientPtr client) if((pContext=(XpContextPtr)SecurityLookupIDByType(client, stuff->printContext, RTcontext, - SecurityReadAccess)) + DixReadAccess)) == (XpContextPtr)NULL) { client->errorValue = stuff->printContext; diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c index 0c7a38199..ec2b4f8d7 100644 --- a/Xext/xvdisp.c +++ b/Xext/xvdisp.c @@ -1877,11 +1877,11 @@ XineramaXvStopVideo(ClientPtr client) REQUEST_SIZE_MATCH(xvStopVideoReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; FOR_NSCREENS_BACKWARD(i) { @@ -1905,7 +1905,7 @@ XineramaXvSetPortAttribute(ClientPtr client) REQUEST_SIZE_MATCH(xvSetPortAttributeReq); if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; FOR_NSCREENS_BACKWARD(i) { @@ -1931,15 +1931,15 @@ XineramaXvShmPutImage(ClientPtr client) REQUEST_SIZE_MATCH(xvShmPutImageReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -1978,15 +1978,15 @@ XineramaXvPutImage(ClientPtr client) REQUEST_AT_LEAST_SIZE(xvPutImageReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -2023,15 +2023,15 @@ XineramaXvPutVideo(ClientPtr client) REQUEST_AT_LEAST_SIZE(xvPutVideoReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; @@ -2068,15 +2068,15 @@ XineramaXvPutStill(ClientPtr client) REQUEST_AT_LEAST_SIZE(xvPutImageReq); if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(gc = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->gc, XRT_GC, SecurityReadAccess))) + client, stuff->gc, XRT_GC, DixReadAccess))) return BadGC; if(!(port = (PanoramiXRes *)SecurityLookupIDByType( - client, stuff->port, XvXRTPort, SecurityReadAccess))) + client, stuff->port, XvXRTPort, DixReadAccess))) return _XvBadPort; isRoot = (draw->type == XRT_WINDOW) && draw->u.win.root; diff --git a/damageext/damageext.c b/damageext/damageext.c index 225f9ecf0..c8f28e953 100755 --- a/damageext/damageext.c +++ b/damageext/damageext.c @@ -179,7 +179,7 @@ ProcDamageCreate (ClientPtr client) REQUEST_SIZE_MATCH(xDamageCreateReq); LEGAL_NEW_RESOURCE(stuff->damage, client); SECURITY_VERIFY_DRAWABLE (pDrawable, stuff->drawable, client, - SecurityReadAccess); + DixReadAccess); switch (stuff->level) { case XDamageReportRawRectangles: level = DamageReportRawRegion; @@ -237,7 +237,7 @@ ProcDamageDestroy (ClientPtr client) DamageExtPtr pDamageExt; REQUEST_SIZE_MATCH(xDamageDestroyReq); - VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, SecurityWriteAccess); + VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, DixWriteAccess); FreeResource (stuff->damage, RT_NONE); return (client->noClientException); } @@ -251,9 +251,9 @@ ProcDamageSubtract (ClientPtr client) RegionPtr pParts; REQUEST_SIZE_MATCH(xDamageSubtractReq); - VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, SecurityWriteAccess); - VERIFY_REGION_OR_NONE(pRepair, stuff->repair, client, SecurityWriteAccess); - VERIFY_REGION_OR_NONE(pParts, stuff->parts, client, SecurityWriteAccess); + VERIFY_DAMAGEEXT(pDamageExt, stuff->damage, client, DixWriteAccess); + VERIFY_REGION_OR_NONE(pRepair, stuff->repair, client, DixWriteAccess); + VERIFY_REGION_OR_NONE(pParts, stuff->parts, client, DixWriteAccess); if (pDamageExt->level != DamageReportRawRegion) { diff --git a/dbe/dbe.c b/dbe/dbe.c index 5b43dd1bd..649143cf2 100644 --- a/dbe/dbe.c +++ b/dbe/dbe.c @@ -406,7 +406,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client) /* The window must be valid. */ if (!(pWin = SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess))) + DixWriteAccess))) { return(BadWindow); } @@ -633,9 +633,9 @@ ProcDbeDeallocateBackBufferName(ClientPtr client) /* Buffer name must be valid */ if (!(pDbeWindowPriv = (DbeWindowPrivPtr)SecurityLookupIDByType(client, - stuff->buffer, dbeWindowPrivResType, SecurityDestroyAccess)) || + stuff->buffer, dbeWindowPrivResType, DixDestroyAccess)) || !(SecurityLookupIDByType(client, stuff->buffer, dbeDrawableResType, - SecurityDestroyAccess))) + DixDestroyAccess))) { client->errorValue = stuff->buffer; return(dbeErrorBase + DbeBadBuffer); @@ -730,7 +730,7 @@ ProcDbeSwapBuffers(ClientPtr client) /* Each window must be a valid window - BadWindow. */ if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client, - SecurityWriteAccess))) + DixWriteAccess))) { DEALLOCATE_LOCAL(swapInfo); return(BadWindow); @@ -890,7 +890,7 @@ ProcDbeGetVisualInfo(ClientPtr client) for (i = 0; i < stuff->n; i++) { if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable( - drawables[i], client, SecurityReadAccess))) + drawables[i], client, DixReadAccess))) { DEALLOCATE_LOCAL(pDrawables); return(BadDrawable); @@ -1047,7 +1047,7 @@ ProcDbeGetBackBufferAttributes(ClientPtr client) REQUEST_SIZE_MATCH(xDbeGetBackBufferAttributesReq); if (!(pDbeWindowPriv = (DbeWindowPrivPtr)SecurityLookupIDByType(client, - stuff->buffer, dbeWindowPrivResType, SecurityReadAccess))) + stuff->buffer, dbeWindowPrivResType, DixReadAccess))) { rep.attributes = None; } diff --git a/dix/colormap.c b/dix/colormap.c index b8f2f4af6..a74cb390c 100644 --- a/dix/colormap.c +++ b/dix/colormap.c @@ -903,7 +903,7 @@ AllocColor (ColormapPtr pmap, { ColormapPtr prootmap = (ColormapPtr) SecurityLookupIDByType (clients[client], pmap->pScreen->defColormap, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pmap->class == prootmap->class) FindColorInRootCmap (prootmap, prootmap->red, entries, &rgb, @@ -920,7 +920,7 @@ AllocColor (ColormapPtr pmap, { ColormapPtr prootmap = (ColormapPtr) SecurityLookupIDByType (clients[client], pmap->pScreen->defColormap, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pmap->class == prootmap->class) { diff --git a/dix/cursor.c b/dix/cursor.c index b9ede1f76..7071d8345 100644 --- a/dix/cursor.c +++ b/dix/cursor.c @@ -262,9 +262,9 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar, GlyphSharePtr pShare; sourcefont = (FontPtr) SecurityLookupIDByType(client, source, RT_FONT, - SecurityReadAccess); + DixReadAccess); maskfont = (FontPtr) SecurityLookupIDByType(client, mask, RT_FONT, - SecurityReadAccess); + DixReadAccess); if (!sourcefont) { diff --git a/dix/dispatch.c b/dix/dispatch.c index 0a761eb6c..a3de07fed 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -563,7 +563,7 @@ ProcCreateWindow(ClientPtr client) LEGAL_NEW_RESOURCE(stuff->wid, client); if (!(pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client, - SecurityWriteAccess))) + DixWriteAccess))) return BadWindow; len = client->req_len - (sizeof(xCreateWindowReq) >> 2); if (Ones(stuff->mask) != len) @@ -604,7 +604,7 @@ ProcChangeWindowAttributes(register ClientPtr client) REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); len = client->req_len - (sizeof(xChangeWindowAttributesReq) >> 2); @@ -629,7 +629,7 @@ ProcGetWindowAttributes(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); GetWindowAttributes(pWin, client, &wa); @@ -645,7 +645,7 @@ ProcDestroyWindow(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityDestroyAccess); + DixDestroyAccess); if (!pWin) return(BadWindow); if (pWin->parent) @@ -661,7 +661,7 @@ ProcDestroySubwindows(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityDestroyAccess); + DixDestroyAccess); if (!pWin) return(BadWindow); DestroySubwindows(pWin, client); @@ -677,7 +677,7 @@ ProcChangeSaveSet(register ClientPtr client) REQUEST_SIZE_MATCH(xChangeSaveSetReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id))) @@ -706,11 +706,11 @@ ProcReparentWindow(register ClientPtr client) REQUEST_SIZE_MATCH(xReparentWindowReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client, - SecurityWriteAccess); + DixWriteAccess); if (!pParent) return(BadWindow); if (SAME_SCREENS(pWin->drawable, pParent->drawable)) @@ -740,7 +740,7 @@ ProcMapWindow(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); MapWindow(pWin, client); @@ -756,7 +756,7 @@ ProcMapSubwindows(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); MapSubwindows(pWin, client); @@ -772,7 +772,7 @@ ProcUnmapWindow(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); UnmapWindow(pWin, FALSE); @@ -788,7 +788,7 @@ ProcUnmapSubwindows(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); UnmapSubwindows(pWin); @@ -805,7 +805,7 @@ ProcConfigureWindow(register ClientPtr client) REQUEST_AT_LEAST_SIZE(xConfigureWindowReq); pWin = (WindowPtr)SecurityLookupWindow( stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); len = client->req_len - (sizeof(xConfigureWindowReq) >> 2); @@ -833,7 +833,7 @@ ProcCirculateWindow(register ClientPtr client) return BadValue; } pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); CirculateWindow(pWin, (int)stuff->direction, client); @@ -847,7 +847,7 @@ GetGeometry(register ClientPtr client, xGetGeometryReply *rep) REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, SecurityReadAccess); + SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, DixReadAccess); rep->type = X_Reply; rep->length = 0; rep->sequenceNumber = client->sequence; @@ -906,7 +906,7 @@ ProcQueryTree(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); reply.type = X_Reply; @@ -1022,7 +1022,7 @@ ProcSetSelectionOwner(register ClientPtr client) if (stuff->window != None) { pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); } @@ -1141,7 +1141,7 @@ ProcConvertSelection(register ClientPtr client) REQUEST_SIZE_MATCH(xConvertSelectionReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->requestor, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); @@ -1159,7 +1159,7 @@ ProcConvertSelection(register ClientPtr client) (CurrentSelections[i].window != None) && XaceHook(XACE_RESOURCE_ACCESS, client, CurrentSelections[i].window, RT_WINDOW, - SecurityReadAccess, CurrentSelections[i].pWin)) + DixReadAccess, CurrentSelections[i].pWin)) { event.u.u.type = SelectionRequest; event.u.selectionRequest.time = stuff->time; @@ -1263,11 +1263,11 @@ ProcTranslateCoords(register ClientPtr client) REQUEST_SIZE_MATCH(xTranslateCoordsReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client, - SecurityReadAccess); + DixReadAccess); if (!pDst) return(BadWindow); rep.type = X_Reply; @@ -1358,7 +1358,7 @@ ProcCloseFont(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT, - SecurityDestroyAccess); + DixDestroyAccess); if ( pFont != (FontPtr)NULL) /* id was valid */ { FreeResource(stuff->id, RT_NONE); @@ -1382,12 +1382,12 @@ ProcQueryFont(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); client->errorValue = stuff->id; /* EITHER font or gc */ pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT, - SecurityReadAccess); + DixReadAccess); if (!pFont) { /* can't use VERIFY_GC because it might return BadGC */ pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC, - SecurityReadAccess); + DixReadAccess); if (!pGC) { client->errorValue = stuff->id; @@ -1443,11 +1443,11 @@ ProcQueryTextExtents(register ClientPtr client) REQUEST_AT_LEAST_SIZE(xQueryTextExtentsReq); pFont = (FontPtr)SecurityLookupIDByType(client, stuff->fid, RT_FONT, - SecurityReadAccess); + DixReadAccess); if (!pFont) { pGC = (GC *)SecurityLookupIDByType(client, stuff->fid, RT_GC, - SecurityReadAccess); + DixReadAccess); if (!pGC) { client->errorValue = stuff->fid; @@ -1526,7 +1526,7 @@ ProcCreatePixmap(register ClientPtr client) client->errorValue = stuff->pid; LEGAL_NEW_RESOURCE(stuff->pid, client); SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client, - SecurityReadAccess); + DixReadAccess); if (!stuff->width || !stuff->height) { client->errorValue = 0; @@ -1581,7 +1581,7 @@ ProcFreePixmap(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pMap = (PixmapPtr)SecurityLookupIDByType(client, stuff->id, RT_PIXMAP, - SecurityDestroyAccess); + DixDestroyAccess); if (pMap) { FreeResource(stuff->id, RT_NONE); @@ -1607,7 +1607,7 @@ ProcCreateGC(register ClientPtr client) client->errorValue = stuff->gc; LEGAL_NEW_RESOURCE(stuff->gc, client); SECURITY_VERIFY_DRAWABLE (pDraw, stuff->drawable, client, - SecurityReadAccess); + DixReadAccess); len = client->req_len - (sizeof(xCreateGCReq) >> 2); if (len != Ones(stuff->mask)) return BadLength; @@ -1629,7 +1629,7 @@ ProcChangeGC(register ClientPtr client) unsigned len; REQUEST_AT_LEAST_SIZE(xChangeGCReq); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityWriteAccess); + SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess); len = client->req_len - (sizeof(xChangeGCReq) >> 2); if (len != Ones(stuff->mask)) return BadLength; @@ -1653,8 +1653,8 @@ ProcCopyGC(register ClientPtr client) REQUEST(xCopyGCReq); REQUEST_SIZE_MATCH(xCopyGCReq); - SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, SecurityReadAccess); - SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, SecurityWriteAccess); + SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, DixReadAccess); + SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, DixWriteAccess); if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth)) return (BadMatch); result = CopyGC(pGC, dstGC, stuff->mask); @@ -1681,7 +1681,7 @@ ProcSetDashes(register ClientPtr client) return BadValue; } - SECURITY_VERIFY_GC(pGC,stuff->gc, client, SecurityWriteAccess); + SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess); result = SetDashes(pGC, stuff->dashOffset, stuff->nDashes, (unsigned char *)&stuff[1]); @@ -1709,7 +1709,7 @@ ProcSetClipRectangles(register ClientPtr client) client->errorValue = stuff->ordering; return BadValue; } - SECURITY_VERIFY_GC(pGC,stuff->gc, client, SecurityWriteAccess); + SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess); nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq); if (nr & 4) @@ -1730,7 +1730,7 @@ ProcFreeGC(register ClientPtr client) REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - SECURITY_VERIFY_GC(pGC, stuff->id, client, SecurityDestroyAccess); + SECURITY_VERIFY_GC(pGC, stuff->id, client, DixDestroyAccess); FreeResource(stuff->id, RT_NONE); return(client->noClientException); } @@ -1743,7 +1743,7 @@ ProcClearToBackground(register ClientPtr client) REQUEST_SIZE_MATCH(xClearAreaReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); if (pWin->drawable.class == InputOnly) @@ -1777,7 +1777,7 @@ ProcCopyArea(register ClientPtr client) if (stuff->dstDrawable != stuff->srcDrawable) { SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client, - SecurityReadAccess); + DixReadAccess); if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) { client->errorValue = stuff->dstDrawable; @@ -1817,7 +1817,7 @@ ProcCopyPlane(register ClientPtr client) if (stuff->dstDrawable != stuff->srcDrawable) { SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client, - SecurityReadAccess); + DixReadAccess); if (pdstDraw->pScreen != psrcDraw->pScreen) { client->errorValue = stuff->dstDrawable; @@ -2156,7 +2156,7 @@ DoGetImage(register ClientPtr client, int format, Drawable drawable, client->errorValue = format; return(BadValue); } - SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, SecurityReadAccess); + SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, DixReadAccess); if(pDraw->type == DRAWABLE_WINDOW) { if( /* check for being viewable */ @@ -2478,7 +2478,7 @@ ProcCreateColormap(register ClientPtr client) mid = stuff->mid; LEGAL_NEW_RESOURCE(mid, client); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); @@ -2508,7 +2508,7 @@ ProcFreeColormap(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pmap = (ColormapPtr )SecurityLookupIDByType(client, stuff->id, RT_COLORMAP, - SecurityDestroyAccess); + DixDestroyAccess); if (pmap) { /* Freeing a default colormap is a no-op */ @@ -2536,7 +2536,7 @@ ProcCopyColormapAndFree(register ClientPtr client) mid = stuff->mid; LEGAL_NEW_RESOURCE(mid, client); if( (pSrcMap = (ColormapPtr )SecurityLookupIDByType(client, stuff->srcCmap, - RT_COLORMAP, SecurityReadAccess|SecurityWriteAccess)) ) + RT_COLORMAP, DixReadAccess|DixWriteAccess)) ) { result = CopyColormapAndFree(mid, pSrcMap, client->index); if (client->noClientException != Success) @@ -2559,7 +2559,7 @@ ProcInstallColormap(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->id, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pcmp) { (*(pcmp->pScreen->InstallColormap)) (pcmp); @@ -2580,7 +2580,7 @@ ProcUninstallColormap(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->id, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pcmp) { if(pcmp->mid != pcmp->pScreen->defColormap) @@ -2604,7 +2604,7 @@ ProcListInstalledColormaps(register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); @@ -2639,7 +2639,7 @@ ProcAllocColor (register ClientPtr client) REQUEST_SIZE_MATCH(xAllocColorReq); pmap = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pmap) { acr.type = X_Reply; @@ -2679,7 +2679,7 @@ ProcAllocNamedColor (register ClientPtr client) REQUEST_FIXED_SIZE(xAllocNamedColorReq, stuff->nbytes); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { int retval; @@ -2731,7 +2731,7 @@ ProcAllocColorCells (register ClientPtr client) REQUEST_SIZE_MATCH(xAllocColorCellsReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { xAllocColorCellsReply accr; @@ -2797,7 +2797,7 @@ ProcAllocColorPlanes(register ClientPtr client) REQUEST_SIZE_MATCH(xAllocColorPlanesReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { xAllocColorPlanesReply acpr; @@ -2861,7 +2861,7 @@ ProcFreeColors(register ClientPtr client) REQUEST_AT_LEAST_SIZE(xFreeColorsReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { int count; @@ -2896,7 +2896,7 @@ ProcStoreColors (ClientPtr client) REQUEST_AT_LEAST_SIZE(xStoreColorsReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { int count; @@ -2930,7 +2930,7 @@ ProcStoreNamedColor (register ClientPtr client) REQUEST_FIXED_SIZE(xStoreNamedColorReq, stuff->nbytes); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityWriteAccess); + RT_COLORMAP, DixWriteAccess); if (pcmp) { xColorItem def; @@ -2964,7 +2964,7 @@ ProcQueryColors(register ClientPtr client) REQUEST_AT_LEAST_SIZE(xQueryColorsReq); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pcmp) { int count, retval; @@ -3015,7 +3015,7 @@ ProcLookupColor(register ClientPtr client) REQUEST_FIXED_SIZE(xLookupColorReq, stuff->nbytes); pcmp = (ColormapPtr)SecurityLookupIDByType(client, stuff->cmap, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (pcmp) { xLookupColorReply lcr; @@ -3065,9 +3065,9 @@ ProcCreateCursor (register ClientPtr client) LEGAL_NEW_RESOURCE(stuff->cid, client); src = (PixmapPtr)SecurityLookupIDByType(client, stuff->source, - RT_PIXMAP, SecurityReadAccess); + RT_PIXMAP, DixReadAccess); msk = (PixmapPtr)SecurityLookupIDByType(client, stuff->mask, - RT_PIXMAP, SecurityReadAccess); + RT_PIXMAP, DixReadAccess); if ( src == (PixmapPtr)NULL) { client->errorValue = stuff->source; @@ -3167,7 +3167,7 @@ ProcFreeCursor (register ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->id, - RT_CURSOR, SecurityDestroyAccess); + RT_CURSOR, DixDestroyAccess); if (pCursor) { FreeResource(stuff->id, RT_NONE); @@ -3197,7 +3197,7 @@ ProcQueryBestSize (register ClientPtr client) return(BadValue); } SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client, - SecurityReadAccess); + DixReadAccess); if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW) return (BadMatch); pScreen = pDraw->pScreen; @@ -3321,7 +3321,7 @@ ProcListHosts(register ClientPtr client) REQUEST_SIZE_MATCH(xListHostsReq); /* untrusted clients can't list hosts */ - if (!XaceHook(XACE_HOSTLIST_ACCESS, client, SecurityReadAccess)) + if (!XaceHook(XACE_HOSTLIST_ACCESS, client, DixReadAccess)) return BadAccess; result = GetHosts(&pdata, &nHosts, &len, &reply.enabled); diff --git a/dix/dixfonts.c b/dix/dixfonts.c index 7e2ed5058..d5b42dcf6 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -1178,7 +1178,7 @@ doPolyText(ClientPtr client, register PTclosurePtr c) if (c->slept && c->pDraw && c->pDraw != (DrawablePtr)SecurityLookupIDByClass(client, c->did, - RC_DRAWABLE, SecurityWriteAccess)) + RC_DRAWABLE, DixWriteAccess)) { /* Our drawable has disappeared. Treat like client died... ask the FPE code to clean up after client and avoid further @@ -1208,7 +1208,7 @@ doPolyText(ClientPtr client, register PTclosurePtr c) | ((Font)*(c->pElt+2)) << 16 | ((Font)*(c->pElt+1)) << 24; pFont = (FontPtr)SecurityLookupIDByType(client, fid, RT_FONT, - SecurityReadAccess); + DixReadAccess); if (!pFont) { client->errorValue = fid; @@ -1463,7 +1463,7 @@ doImageText(ClientPtr client, register ITclosurePtr c) if (c->slept && c->pDraw && c->pDraw != (DrawablePtr)SecurityLookupIDByClass(client, c->did, - RC_DRAWABLE, SecurityWriteAccess)) + RC_DRAWABLE, DixWriteAccess)) { /* Our drawable has disappeared. Treat like client died... ask the FPE code to clean up after client. */ @@ -2016,7 +2016,7 @@ FontPtr find_old_font(XID id) { return (FontPtr) SecurityLookupIDByType(NullClient, id, RT_NONE, - SecurityUnknownAccess); + DixUnknownAccess); } Font diff --git a/dix/dixutils.c b/dix/dixutils.c index af7e1c8f1..fca55d99f 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -236,13 +236,13 @@ SecurityLookupDrawable(XID rid, ClientPtr client, Mask access_mode) _X_EXPORT WindowPtr LookupWindow(XID rid, ClientPtr client) { - return SecurityLookupWindow(rid, client, SecurityUnknownAccess); + return SecurityLookupWindow(rid, client, DixUnknownAccess); } _X_EXPORT pointer LookupDrawable(XID rid, ClientPtr client) { - return SecurityLookupDrawable(rid, client, SecurityUnknownAccess); + return SecurityLookupDrawable(rid, client, DixUnknownAccess); } #else /* not XACE */ @@ -293,7 +293,7 @@ _X_EXPORT ClientPtr LookupClient(XID rid, ClientPtr client) { pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY, - SecurityReadAccess); + DixReadAccess); int clientIndex = CLIENT_ID(rid); if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) diff --git a/dix/events.c b/dix/events.c index 0a39dcd9e..c7cf73e46 100644 --- a/dix/events.c +++ b/dix/events.c @@ -2235,7 +2235,7 @@ XineramaWarpPointer(ClientPtr client) if (stuff->dstWid != None) { - dest = SecurityLookupWindow(stuff->dstWid, client, SecurityReadAccess); + dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess); if (!dest) return BadWindow; } @@ -2248,7 +2248,7 @@ XineramaWarpPointer(ClientPtr client) XID winID = stuff->srcWid; WindowPtr source; - source = SecurityLookupWindow(winID, client, SecurityReadAccess); + source = SecurityLookupWindow(winID, client, DixReadAccess); if (!source) return BadWindow; winX = source->drawable.x; @@ -2315,7 +2315,7 @@ ProcWarpPointer(ClientPtr client) if (stuff->dstWid != None) { - dest = SecurityLookupWindow(stuff->dstWid, client, SecurityReadAccess); + dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess); if (!dest) return BadWindow; } @@ -2328,7 +2328,7 @@ ProcWarpPointer(ClientPtr client) XID winID = stuff->srcWid; WindowPtr source; - source = SecurityLookupWindow(winID, client, SecurityReadAccess); + source = SecurityLookupWindow(winID, client, DixReadAccess); if (!source) return BadWindow; winX = source->drawable.x; @@ -3551,7 +3551,7 @@ SetInputFocus( else if ((focusID == FollowKeyboard) && followOK) focusWin = inputInfo.keyboard->focus->win; else if (!(focusWin = SecurityLookupWindow(focusID, client, - SecurityReadAccess))) + DixReadAccess))) return BadWindow; else { @@ -3671,7 +3671,7 @@ ProcGrabPointer(ClientPtr client) client->errorValue = stuff->eventMask; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; if (stuff->confineTo == None) @@ -3679,7 +3679,7 @@ ProcGrabPointer(ClientPtr client) else { confineTo = SecurityLookupWindow(stuff->confineTo, client, - SecurityReadAccess); + DixReadAccess); if (!confineTo) return BadWindow; } @@ -3688,7 +3688,7 @@ ProcGrabPointer(ClientPtr client) else { cursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor, - RT_CURSOR, SecurityReadAccess); + RT_CURSOR, DixReadAccess); if (!cursor) { client->errorValue = stuff->cursor; @@ -3762,7 +3762,7 @@ ProcChangeActivePointerGrab(ClientPtr client) else { newCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor, - RT_CURSOR, SecurityReadAccess); + RT_CURSOR, DixReadAccess); if (!newCursor) { client->errorValue = stuff->cursor; @@ -3832,7 +3832,7 @@ GrabDevice(register ClientPtr client, register DeviceIntPtr dev, client->errorValue = ownerEvents; return BadValue; } - pWin = SecurityLookupWindow(grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; time = ClientTimeToServerTime(ctime); @@ -3920,7 +3920,7 @@ ProcQueryPointer(ClientPtr client) DeviceIntPtr mouse = inputInfo.pointer; REQUEST_SIZE_MATCH(xResourceReq); - pWin = SecurityLookupWindow(stuff->id, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->id, client, DixReadAccess); if (!pWin) return BadWindow; if (mouse->valuator->motionHintWindow) @@ -4087,7 +4087,7 @@ ProcSendEvent(ClientPtr client) } else pWin = SecurityLookupWindow(stuff->destination, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; if ((stuff->propagate != xFalse) && (stuff->propagate != xTrue)) @@ -4125,7 +4125,7 @@ ProcUngrabKey(ClientPtr client) DeviceIntPtr keybd = inputInfo.keyboard; REQUEST_SIZE_MATCH(xUngrabKeyReq); - pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; @@ -4196,7 +4196,7 @@ ProcGrabKey(ClientPtr client) client->errorValue = stuff->modifiers; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; @@ -4248,14 +4248,14 @@ ProcGrabButton(ClientPtr client) client->errorValue = stuff->eventMask; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; if (stuff->confineTo == None) confineTo = NullWindow; else { confineTo = SecurityLookupWindow(stuff->confineTo, client, - SecurityReadAccess); + DixReadAccess); if (!confineTo) return BadWindow; } @@ -4264,7 +4264,7 @@ ProcGrabButton(ClientPtr client) else { cursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor, - RT_CURSOR, SecurityReadAccess); + RT_CURSOR, DixReadAccess); if (!cursor) { client->errorValue = stuff->cursor; @@ -4297,7 +4297,7 @@ ProcUngrabButton(ClientPtr client) client->errorValue = stuff->modifiers; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, SecurityReadAccess); + pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); if (!pWin) return BadWindow; tempGrab.resource = client->clientAsMask; @@ -4451,7 +4451,7 @@ ProcRecolorCursor(ClientPtr client) REQUEST_SIZE_MATCH(xRecolorCursorReq); pCursor = (CursorPtr)SecurityLookupIDByType(client, stuff->cursor, - RT_CURSOR, SecurityWriteAccess); + RT_CURSOR, DixWriteAccess); if ( !pCursor) { client->errorValue = stuff->cursor; diff --git a/dix/gc.c b/dix/gc.c index ed6bf26db..5106fcda2 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -271,7 +271,7 @@ dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC { NEXTVAL(XID, newpix); pPixmap = (PixmapPtr)SecurityLookupIDByType(client, - newpix, RT_PIXMAP, SecurityReadAccess); + newpix, RT_PIXMAP, DixReadAccess); } if (pPixmap) { @@ -307,7 +307,7 @@ dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC { NEXTVAL(XID, newstipple) pPixmap = (PixmapPtr)SecurityLookupIDByType(client, - newstipple, RT_PIXMAP, SecurityReadAccess); + newstipple, RT_PIXMAP, DixReadAccess); } if (pPixmap) { @@ -349,7 +349,7 @@ dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC { NEXTVAL(XID, newfont) pFont = (FontPtr)SecurityLookupIDByType(client, newfont, - RT_FONT, SecurityReadAccess); + RT_FONT, DixReadAccess); } if (pFont) { @@ -416,7 +416,7 @@ dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC } else pPixmap = (PixmapPtr)SecurityLookupIDByType(client, - pid, RT_PIXMAP, SecurityReadAccess); + pid, RT_PIXMAP, DixReadAccess); } if (pPixmap) diff --git a/dix/property.c b/dix/property.c index 00d485655..5c1e957a5 100644 --- a/dix/property.c +++ b/dix/property.c @@ -105,7 +105,7 @@ ProcRotateProperties(ClientPtr client) REQUEST_FIXED_SIZE(xRotatePropertiesReq, stuff->nAtoms << 2); UpdateCurrentTime(); pWin = (WindowPtr) SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); if (!stuff->nAtoms) @@ -117,7 +117,7 @@ ProcRotateProperties(ClientPtr client) for (i = 0; i < stuff->nAtoms; i++) { char action = XaceHook(XACE_PROPERTY_ACCESS, client, pWin, atoms[i], - SecurityReadAccess|SecurityWriteAccess); + DixReadAccess|DixWriteAccess); if (!ValidAtom(atoms[i]) || (XaceErrorOperation == action)) { DEALLOCATE_LOCAL(props); @@ -209,7 +209,7 @@ ProcChangeProperty(ClientPtr client) REQUEST_FIXED_SIZE(xChangePropertyReq, totalSize); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); if (!ValidAtom(stuff->property)) @@ -224,7 +224,7 @@ ProcChangeProperty(ClientPtr client) } switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property, - SecurityWriteAccess)) + DixWriteAccess)) { case XaceErrorOperation: client->errorValue = stuff->property; @@ -448,14 +448,14 @@ ProcGetProperty(ClientPtr client) unsigned long n, len, ind; WindowPtr pWin; xGetPropertyReply reply; - Mask access_mode = SecurityReadAccess; + Mask access_mode = DixReadAccess; REQUEST(xGetPropertyReq); REQUEST_SIZE_MATCH(xGetPropertyReq); if (stuff->delete) UpdateCurrentTime(); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; @@ -491,7 +491,7 @@ ProcGetProperty(ClientPtr client) return NullPropertyReply(client, None, 0, &reply); if (stuff->delete) - access_mode |= SecurityDestroyAccess; + access_mode |= DixDestroyAccess; switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property, access_mode)) { @@ -592,7 +592,7 @@ ProcListProperties(ClientPtr client) REQUEST_SIZE_MATCH(xResourceReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); @@ -637,7 +637,7 @@ ProcDeleteProperty(register ClientPtr client) REQUEST_SIZE_MATCH(xDeletePropertyReq); UpdateCurrentTime(); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityWriteAccess); + DixWriteAccess); if (!pWin) return(BadWindow); if (!ValidAtom(stuff->property)) @@ -647,7 +647,7 @@ ProcDeleteProperty(register ClientPtr client) } switch (XaceHook(XACE_PROPERTY_ACCESS, client, pWin, stuff->property, - SecurityDestroyAccess)) + DixDestroyAccess)) { case XaceErrorOperation: client->errorValue = stuff->property; diff --git a/dix/resource.c b/dix/resource.c index c2044601f..4468f4575 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -944,12 +944,12 @@ _X_EXPORT pointer LookupIDByType(XID id, RESTYPE rtype) { return SecurityLookupIDByType(NullClient, id, rtype, - SecurityUnknownAccess); + DixUnknownAccess); } _X_EXPORT pointer LookupIDByClass(XID id, RESTYPE classes) { return SecurityLookupIDByClass(NullClient, id, classes, - SecurityUnknownAccess); + DixUnknownAccess); } diff --git a/dix/window.c b/dix/window.c index fa6906f2a..e33140dd4 100644 --- a/dix/window.c +++ b/dix/window.c @@ -1062,7 +1062,7 @@ ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPt else { pPixmap = (PixmapPtr)SecurityLookupIDByType(client, pixID, - RT_PIXMAP, SecurityReadAccess); + RT_PIXMAP, DixReadAccess); if (pPixmap != (PixmapPtr) NULL) { if ((pPixmap->drawable.depth != pWin->drawable.depth) || @@ -1123,7 +1123,7 @@ ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPt else { pPixmap = (PixmapPtr)SecurityLookupIDByType(client, pixID, - RT_PIXMAP, SecurityReadAccess); + RT_PIXMAP, DixReadAccess); if (pPixmap) { if ((pPixmap->drawable.depth != pWin->drawable.depth) || @@ -1333,7 +1333,7 @@ ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPt goto PatchUp; } pCmap = (ColormapPtr)SecurityLookupIDByType(client, cmap, - RT_COLORMAP, SecurityReadAccess); + RT_COLORMAP, DixReadAccess); if (!pCmap) { error = BadColor; @@ -1409,7 +1409,7 @@ ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPt else { pCursor = (CursorPtr)SecurityLookupIDByType(client, cursorID, - RT_CURSOR, SecurityReadAccess); + RT_CURSOR, DixReadAccess); if (!pCursor) { error = BadCursor; @@ -2299,7 +2299,7 @@ ConfigureWindow(register WindowPtr pWin, register Mask mask, XID *vlist, ClientP sibwid = (Window ) *pVlist; pVlist++; pSib = (WindowPtr )SecurityLookupIDByType(client, sibwid, - RT_WINDOW, SecurityReadAccess); + RT_WINDOW, DixReadAccess); if (!pSib) { client->errorValue = sibwid; diff --git a/hw/darwin/quartz/applewm.c b/hw/darwin/quartz/applewm.c index 6db036f1b..a9d8b5659 100644 --- a/hw/darwin/quartz/applewm.c +++ b/hw/darwin/quartz/applewm.c @@ -268,7 +268,7 @@ ProcAppleWMSelectInput (client) REQUEST_SIZE_MATCH (xAppleWMSelectInputReq); pHead = (WMEventPtr *)SecurityLookupIDByType(client, - eventResource, EventType, SecurityWriteAccess); + eventResource, EventType, DixWriteAccess); if (stuff->mask != 0) { if (pHead) { /* check for existing entry. */ @@ -491,7 +491,7 @@ ProcAppleWMSetWindowLevel( REQUEST_SIZE_MATCH(xAppleWMSetWindowLevelReq); if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, SecurityReadAccess))) + client, DixReadAccess))) { return BadValue; } @@ -603,7 +603,7 @@ ProcAppleWMFrameDraw( REQUEST_AT_LEAST_SIZE(xAppleWMFrameDrawReq); if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, SecurityReadAccess))) + client, DixReadAccess))) { return BadValue; } diff --git a/hw/darwin/quartz/xpr/appledri.c b/hw/darwin/quartz/xpr/appledri.c index 6d9bae10f..585d7e1be 100644 --- a/hw/darwin/quartz/xpr/appledri.c +++ b/hw/darwin/quartz/xpr/appledri.c @@ -223,7 +223,7 @@ ProcAppleDRICreateSurface( if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( (Drawable)stuff->drawable, client, - SecurityReadAccess))) { + DixReadAccess))) { return BadValue; } @@ -256,7 +256,7 @@ ProcAppleDRIDestroySurface( if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( (Drawable)stuff->drawable, client, - SecurityReadAccess))) { + DixReadAccess))) { return BadValue; } diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c index 75623e696..02e8b1e7c 100644 --- a/hw/dmx/dmx.c +++ b/hw/dmx/dmx.c @@ -282,12 +282,12 @@ static int ProcDMXForceWindowCreation(ClientPtr client) int i; if (!(win = SecurityLookupIDByType(client, stuff->window, XRT_WINDOW, - SecurityReadAccess))) + DixReadAccess))) return -1; /* BadWindow */ FOR_NSCREENS(i) { if (!(pWin = SecurityLookupWindow(win->info[i].id, client, - SecurityReadAccess))) + DixReadAccess))) return -1; /* BadWindow */ dmxForceWindowCreation(pWin); @@ -297,7 +297,7 @@ static int ProcDMXForceWindowCreation(ClientPtr client) #endif if (!(pWin = SecurityLookupWindow(stuff->window, client, - SecurityReadAccess))) + DixReadAccess))) return -1; /* BadWindow */ dmxForceWindowCreation(pWin); @@ -556,12 +556,12 @@ static int dmxPopulatePanoramiX(ClientPtr client, Window window, DMXWindowAttributesRec attr; if (!(win = SecurityLookupIDByType(client, window, XRT_WINDOW, - SecurityReadAccess))) + DixReadAccess))) return -1; /* BadWindow */ FOR_NSCREENS(i) { if (!(pWin = SecurityLookupWindow(win->info[i].id, client, - SecurityReadAccess))) + DixReadAccess))) return -1; /* BadWindow */ if (dmxGetWindowAttributes(pWin, &attr)) { screens[count] = attr.screen; @@ -587,7 +587,7 @@ static int dmxPopulate(ClientPtr client, Window window, CARD32 *screens, pos, vis); #endif - if (!(pWin = SecurityLookupWindow(window, client, SecurityReadAccess))) + if (!(pWin = SecurityLookupWindow(window, client, DixReadAccess))) return -1; /* BadWindow */ dmxGetWindowAttributes(pWin, &attr); diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c index 9cdd123b9..339692538 100644 --- a/hw/dmx/dmxpict.c +++ b/hw/dmx/dmxpict.c @@ -247,7 +247,7 @@ static int dmxProcRenderCreateGlyphSet(ClientPtr client) /* Make sure we handle all errors here!! */ glyphSet = SecurityLookupIDByType(client, stuff->gsid, GlyphSetType, - SecurityDestroyAccess); + DixDestroyAccess); glyphPriv = xalloc(sizeof(dmxGlyphPrivRec)); if (!glyphPriv) return BadAlloc; glyphPriv->glyphSets = NULL; @@ -255,7 +255,7 @@ static int dmxProcRenderCreateGlyphSet(ClientPtr client) DMX_SET_GLYPH_PRIV(glyphSet, glyphPriv); pFmt = SecurityLookupIDByType(client, stuff->format, PictFormatType, - SecurityReadAccess); + DixReadAccess); oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler); @@ -315,7 +315,7 @@ static int dmxProcRenderFreeGlyphSet(ClientPtr client) REQUEST_SIZE_MATCH(xRenderFreeGlyphSetReq); glyphSet = SecurityLookupIDByType(client, stuff->glyphset, GlyphSetType, - SecurityDestroyAccess); + DixDestroyAccess); if (glyphSet && glyphSet->refcnt == 1) { dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); @@ -358,7 +358,7 @@ static int dmxProcRenderAddGlyphs(ClientPtr client) int nbytes; glyphSet = SecurityLookupIDByType(client, stuff->glyphset, - GlyphSetType, SecurityReadAccess); + GlyphSetType, DixReadAccess); glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); nglyphs = stuff->nglyphs; @@ -401,7 +401,7 @@ static int dmxProcRenderFreeGlyphs(ClientPtr client) REQUEST_AT_LEAST_SIZE(xRenderFreeGlyphsReq); glyphSet = SecurityLookupIDByType(client, stuff->glyphset, GlyphSetType, - SecurityWriteAccess); + DixWriteAccess); if (glyphSet) { dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); @@ -473,13 +473,13 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) dmxGlyphPrivPtr glyphPriv; pSrc = SecurityLookupIDByType(client, stuff->src, PictureType, - SecurityReadAccess); + DixReadAccess); pSrcPriv = DMX_GET_PICT_PRIV(pSrc); if (!pSrcPriv->pict) return ret; pDst = SecurityLookupIDByType(client, stuff->dst, PictureType, - SecurityWriteAccess); + DixWriteAccess); pDstPriv = DMX_GET_PICT_PRIV(pDst); if (!pDstPriv->pict) return ret; @@ -496,7 +496,7 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) if (stuff->maskFormat) pFmt = SecurityLookupIDByType(client, stuff->maskFormat, - PictFormatType, SecurityReadAccess); + PictFormatType, DixReadAccess); else pFmt = NULL; @@ -547,7 +547,7 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) curElt = elts; glyphSet = SecurityLookupIDByType(client, stuff->glyphset, - GlyphSetType, SecurityReadAccess); + GlyphSetType, DixReadAccess); glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); while (buffer + sizeof(xGlyphElt) < end) { @@ -558,7 +558,7 @@ static int dmxProcRenderCompositeGlyphs(ClientPtr client) glyphSet = SecurityLookupIDByType(client, *((CARD32 *)buffer), GlyphSetType, - SecurityReadAccess); + DixReadAccess); glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); buffer += 4; } else { @@ -622,7 +622,7 @@ static int dmxProcRenderSetPictureTransform(ClientPtr client) REQUEST(xRenderSetPictureTransformReq); REQUEST_SIZE_MATCH(xRenderSetPictureTransformReq); - VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); /* For the following to work with PanoramiX, it assumes that Render @@ -663,7 +663,7 @@ static int dmxProcRenderSetPictureFilter(ClientPtr client) REQUEST(xRenderSetPictureFilterReq); REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq); - VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); /* For the following to work with PanoramiX, it assumes that Render diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c index 78cb34eec..20a02a173 100644 --- a/hw/dmx/glxProxy/glxcmds.c +++ b/hw/dmx/glxProxy/glxcmds.c @@ -1105,13 +1105,13 @@ static int MakeCurrent(__GLXclientState *cl, if (pDraw && new_reply.writeType != GLX_PBUFFER_TYPE) { pXinDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess); } if (pReadDraw && pReadDraw != pDraw && new_reply.readType != GLX_PBUFFER_TYPE) { pXinReadDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pReadDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pReadDraw->id, XRC_DRAWABLE, DixReadAccess); } else { pXinReadDraw = pXinDraw; @@ -1139,7 +1139,7 @@ static int MakeCurrent(__GLXclientState *cl, else if (pXinDraw) { pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, client, - SecurityReadAccess); + DixReadAccess); } #endif else if (pGlxWindow) { @@ -1197,7 +1197,7 @@ static int MakeCurrent(__GLXclientState *cl, else if (pXinReadDraw) { pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id, client, - SecurityReadAccess); + DixReadAccess); } #endif else if (pGlxReadWindow) { @@ -1768,7 +1768,7 @@ static int CreateGLXPixmap(__GLXclientState *cl, to_screen = screenInfo.numScreens - 1; pXinDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess); } #endif @@ -2014,7 +2014,7 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag) from_screen = 0; to_screen = screenInfo.numScreens - 1; pXinDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess); } #endif @@ -2060,7 +2060,7 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag) else if (pXinDraw) { pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, client, - SecurityReadAccess); + DixReadAccess); } #endif else if (pGlxWindow) { @@ -3069,7 +3069,7 @@ int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc) int nReplyBytes; req = (xGLXQueryContextInfoEXTReq *)pc; - ctx = (__GLXcontext *) SecurityLookupIDByType(client, req->context, __glXContextRes, SecurityReadAccess); + ctx = (__GLXcontext *) SecurityLookupIDByType(client, req->context, __glXContextRes, DixReadAccess); if (!ctx) { client->errorValue = req->context; return __glXBadContext; @@ -3353,7 +3353,7 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc) #ifdef PANORAMIX if (!noPanoramiXExtension) { pXinDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess); if (!pXinDraw) { client->errorValue = drawId; return __glXBadDrawable; @@ -3361,7 +3361,7 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc) pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id, client, - SecurityReadAccess); + DixReadAccess); } #endif @@ -3515,7 +3515,7 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc) #ifdef PANORAMIX if (!noPanoramiXExtension) { pXinDraw = (PanoramiXRes *) - SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, SecurityReadAccess); + SecurityLookupIDByClass(client, pDraw->id, XRC_DRAWABLE, DixReadAccess); if (!pXinDraw) { client->errorValue = drawId; return __glXBadDrawable; @@ -3523,7 +3523,7 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc) pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id, client, - SecurityReadAccess); + DixReadAccess); } #endif diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c index d14b3d800..03e6725ff 100644 --- a/hw/xfree86/dri/xf86dri.c +++ b/hw/xfree86/dri/xf86dri.c @@ -401,7 +401,7 @@ ProcXF86DRICreateDrawable( if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( (Drawable)stuff->drawable, client, - SecurityReadAccess))) { + DixReadAccess))) { return BadValue; } @@ -432,7 +432,7 @@ ProcXF86DRIDestroyDrawable( if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( (Drawable)stuff->drawable, client, - SecurityReadAccess))) { + DixReadAccess))) { return BadValue; } @@ -471,7 +471,7 @@ ProcXF86DRIGetDrawableInfo( if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( (Drawable)stuff->drawable, client, - SecurityReadAccess))) { + DixReadAccess))) { return BadValue; } diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c index 8801f6c42..e9bcea9a8 100755 --- a/hw/xwin/winclipboardwrappers.c +++ b/hw/xwin/winclipboardwrappers.c @@ -345,7 +345,7 @@ winProcSetSelectionOwner (ClientPtr client) { /* Grab the Window from the request */ pWindow = (WindowPtr) SecurityLookupWindow (stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWindow) { ErrorF ("winProcSetSelectionOwner - Found BadWindow, aborting.\n"); diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c index 81a161041..ac92e26df 100755 --- a/hw/xwin/winwindowswm.c +++ b/hw/xwin/winwindowswm.c @@ -203,7 +203,7 @@ ProcWindowsWMSelectInput (register ClientPtr client) REQUEST_SIZE_MATCH (xWindowsWMSelectInputReq); pHead = (WMEventPtr *)SecurityLookupIDByType(client, eventResource, - EventType, SecurityWriteAccess); + EventType, DixWriteAccess); if (stuff->mask != 0) { if (pHead) @@ -451,7 +451,7 @@ ProcWindowsWMFrameDraw (register ClientPtr client) ErrorF ("ProcWindowsWMFrameDraw\n"); #endif if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, SecurityReadAccess))) + client, DixReadAccess))) { return BadValue; } @@ -546,7 +546,7 @@ ProcWindowsWMFrameSetTitle( REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq); if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, SecurityReadAccess))) + client, DixReadAccess))) { return BadValue; } diff --git a/include/dix.h b/include/dix.h index a5a570a51..2c87a48c3 100644 --- a/include/dix.h +++ b/include/dix.h @@ -122,13 +122,13 @@ SOFTWARE. } #define VERIFY_DRAWABLE(pDraw, did, client)\ - SECURITY_VERIFY_DRAWABLE(pDraw, did, client, SecurityUnknownAccess) + SECURITY_VERIFY_DRAWABLE(pDraw, did, client, DixUnknownAccess) #define VERIFY_GEOMETRABLE(pDraw, did, client)\ - SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, SecurityUnknownAccess) + SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, DixUnknownAccess) #define VERIFY_GC(pGC, rid, client)\ - SECURITY_VERIFY_GC(pGC, rid, client, SecurityUnknownAccess) + SECURITY_VERIFY_GC(pGC, rid, client, DixUnknownAccess) #else /* not XACE */ @@ -239,8 +239,8 @@ SOFTWARE. if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\ (client->lastDrawableID != drawID))\ {\ - SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, SecurityWriteAccess);\ - SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess);\ + SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, DixWriteAccess);\ + SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);\ if ((pGC->depth != pDraw->depth) ||\ (pGC->pScreen != pDraw->pScreen))\ return (BadMatch);\ diff --git a/include/resource.h b/include/resource.h index fd0caaeb5..3231e8cd9 100644 --- a/include/resource.h +++ b/include/resource.h @@ -220,10 +220,11 @@ extern pointer LookupClientResourceComplex( * simultaneously. */ -#define SecurityUnknownAccess 0 /* don't know intentions */ -#define SecurityReadAccess (1<<0) /* inspecting the object */ -#define SecurityWriteAccess (1<<1) /* changing the object */ -#define SecurityDestroyAccess (1<<2) /* destroying the object */ +#define DixUnknownAccess 0 /* don't know intentions */ +#define DixReadAccess (1<<0) /* inspecting the object */ +#define DixWriteAccess (1<<1) /* changing the object */ +#define DixReadWriteAccess (DixReadAccess|DixWriteAccess) +#define DixDestroyAccess (1<<2) /* destroying the object */ extern pointer SecurityLookupIDByType( ClientPtr /*client*/, diff --git a/os/access.c b/os/access.c index d61edeffc..db5ca3135 100644 --- a/os/access.c +++ b/os/access.c @@ -1528,7 +1528,7 @@ AuthorizedClient(ClientPtr client) return TRUE; /* untrusted clients can't change host access */ - if (!XaceHook(XACE_HOSTLIST_ACCESS, client, SecurityWriteAccess)) + if (!XaceHook(XACE_HOSTLIST_ACCESS, client, DixWriteAccess)) return FALSE; return LocalClient(client); diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index e8a7b79e1..d4c96f680 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -457,7 +457,7 @@ ProcRRGetCrtcInfo (ClientPtr client) int i, j, k, n; REQUEST_SIZE_MATCH(xRRGetCrtcInfoReq); - crtc = LookupCrtc(client, stuff->crtc, SecurityReadAccess); + crtc = LookupCrtc(client, stuff->crtc, DixReadAccess); if (!crtc) return RRErrorBase + BadRRCrtc; @@ -766,7 +766,7 @@ ProcRRGetCrtcGammaSize (ClientPtr client) int n; REQUEST_SIZE_MATCH(xRRGetCrtcGammaSizeReq); - crtc = LookupCrtc (client, stuff->crtc, SecurityReadAccess); + crtc = LookupCrtc (client, stuff->crtc, DixReadAccess); if (!crtc) return RRErrorBase + BadRRCrtc; @@ -793,7 +793,7 @@ ProcRRGetCrtcGamma (ClientPtr client) unsigned long len; REQUEST_SIZE_MATCH(xRRGetCrtcGammaReq); - crtc = LookupCrtc (client, stuff->crtc, SecurityReadAccess); + crtc = LookupCrtc (client, stuff->crtc, DixReadAccess); if (!crtc) return RRErrorBase + BadRRCrtc; @@ -826,7 +826,7 @@ ProcRRSetCrtcGamma (ClientPtr client) CARD16 *red, *green, *blue; REQUEST_SIZE_MATCH(xRRSetCrtcGammaReq); - crtc = LookupCrtc (client, stuff->crtc, SecurityWriteAccess); + crtc = LookupCrtc (client, stuff->crtc, DixWriteAccess); if (!crtc) return RRErrorBase + BadRRCrtc; diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c index 6b61b9cd7..b1ec68b83 100644 --- a/randr/rrdispatch.c +++ b/randr/rrdispatch.c @@ -72,12 +72,12 @@ ProcRRSelectInput (ClientPtr client) XID clientResource; REQUEST_SIZE_MATCH(xRRSelectInputReq); - pWin = SecurityLookupWindow (stuff->window, client, SecurityWriteAccess); + pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess); if (!pWin) return BadWindow; pHead = (RREventPtr *)SecurityLookupIDByType(client, pWin->drawable.id, RREventType, - SecurityWriteAccess); + DixWriteAccess); if (stuff->enable & (RRScreenChangeNotifyMask| RRCrtcChangeNotifyMask| diff --git a/randr/rroutput.c b/randr/rroutput.c index 430f8bdaa..33c4ba534 100644 --- a/randr/rroutput.c +++ b/randr/rroutput.c @@ -378,7 +378,7 @@ ProcRRGetOutputInfo (ClientPtr client) int i, n; REQUEST_SIZE_MATCH(xRRGetOutputInfoReq); - output = LookupOutput(client, stuff->output, SecurityReadAccess); + output = LookupOutput(client, stuff->output, DixReadAccess); if (!output) return RRErrorBase + BadRROutput; diff --git a/randr/rrproperty.c b/randr/rrproperty.c index 13e848340..56bb39a85 100644 --- a/randr/rrproperty.c +++ b/randr/rrproperty.c @@ -313,7 +313,7 @@ ProcRRListOutputProperties (ClientPtr client) REQUEST_SIZE_MATCH(xRRListOutputPropertiesReq); - output = LookupOutput (client, stuff->output, SecurityReadAccess); + output = LookupOutput (client, stuff->output, DixReadAccess); if (!output) return RRErrorBase + BadRROutput; @@ -358,7 +358,7 @@ ProcRRQueryOutputProperty (ClientPtr client) REQUEST_SIZE_MATCH(xRRQueryOutputPropertyReq); - output = LookupOutput (client, stuff->output, SecurityReadAccess); + output = LookupOutput (client, stuff->output, DixReadAccess); if (!output) return RRErrorBase + BadRROutput; @@ -398,7 +398,7 @@ ProcRRConfigureOutputProperty (ClientPtr client) REQUEST_SIZE_MATCH(xRRConfigureOutputPropertyReq); - output = LookupOutput (client, stuff->output, SecurityReadAccess); + output = LookupOutput (client, stuff->output, DixReadAccess); if (!output) return RRErrorBase + BadRROutput; @@ -443,7 +443,7 @@ ProcRRChangeOutputProperty (ClientPtr client) totalSize = len * sizeInBytes; REQUEST_FIXED_SIZE(xRRChangeOutputPropertyReq, totalSize); - output = LookupOutput (client, stuff->output, SecurityWriteAccess); + output = LookupOutput (client, stuff->output, DixWriteAccess); if (!output) return RRErrorBase + BadRROutput; @@ -475,7 +475,7 @@ ProcRRDeleteOutputProperty (ClientPtr client) REQUEST_SIZE_MATCH(xRRDeleteOutputPropertyReq); UpdateCurrentTime(); - output = LookupOutput (client, stuff->output, SecurityWriteAccess); + output = LookupOutput (client, stuff->output, DixWriteAccess); if (!output) return RRErrorBase + BadRROutput; @@ -504,8 +504,8 @@ ProcRRGetOutputProperty (ClientPtr client) if (stuff->delete) UpdateCurrentTime(); output = LookupOutput (client, stuff->output, - stuff->delete ? SecurityWriteAccess : - SecurityReadAccess); + stuff->delete ? DixWriteAccess : + DixReadAccess); if (!output) return RRErrorBase + BadRROutput; diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 76c16b010..b4004a31f 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -220,7 +220,7 @@ ProcRRGetScreenSizeRange (ClientPtr client) REQUEST_SIZE_MATCH(xRRGetScreenInfoReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; @@ -273,7 +273,7 @@ ProcRRSetScreenSize (ClientPtr client) REQUEST_SIZE_MATCH(xRRSetScreenSizeReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; @@ -332,7 +332,7 @@ ProcRRGetScreenResources (ClientPtr client) REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; @@ -557,7 +557,7 @@ ProcRRGetScreenInfo (ClientPtr client) REQUEST_SIZE_MATCH(xRRGetScreenInfoReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return BadWindow; @@ -731,7 +731,7 @@ ProcRRSetScreenConfig (ClientPtr client) } SECURITY_VERIFY_DRAWABLE(pDraw, stuff->drawable, client, - SecurityWriteAccess); + DixWriteAccess); pScreen = pDraw->pScreen; diff --git a/render/picture.c b/render/picture.c index a3443c20e..e7901e873 100644 --- a/render/picture.c +++ b/render/picture.c @@ -1209,7 +1209,7 @@ ChangePicture (PicturePtr pPicture, pAlpha = (PicturePtr) SecurityLookupIDByType(client, pid, PictureType, - SecurityWriteAccess|SecurityReadAccess); + DixWriteAccess|DixReadAccess); if (!pAlpha) { client->errorValue = pid; @@ -1271,7 +1271,7 @@ ChangePicture (PicturePtr pPicture, pPixmap = (PixmapPtr)SecurityLookupIDByType(client, pid, RT_PIXMAP, - SecurityReadAccess); + DixReadAccess); if (!pPixmap) { client->errorValue = pid; diff --git a/render/render.c b/render/render.c index e4d8d6b32..51a3fa69a 100644 --- a/render/render.c +++ b/render/render.c @@ -554,7 +554,7 @@ ProcRenderQueryPictIndexValues (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->format, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { @@ -622,11 +622,11 @@ ProcRenderCreatePicture (ClientPtr client) LEGAL_NEW_RESOURCE(stuff->pid, client); SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, - SecurityWriteAccess); + DixWriteAccess); pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->format, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->format; @@ -660,7 +660,7 @@ ProcRenderChangePicture (ClientPtr client) int len; REQUEST_AT_LEAST_SIZE(xRenderChangePictureReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); len = client->req_len - (sizeof(xRenderChangePictureReq) >> 2); @@ -680,7 +680,7 @@ ProcRenderSetPictureClipRectangles (ClientPtr client) int result; REQUEST_AT_LEAST_SIZE(xRenderSetPictureClipRectanglesReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pPicture->pDrawable) return BadDrawable; @@ -706,7 +706,7 @@ ProcRenderFreePicture (ClientPtr client) REQUEST_SIZE_MATCH(xRenderFreePictureReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityDestroyAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixDestroyAccess, RenderErrBase + BadPicture); FreeResource (stuff->picture, RT_NONE); return(client->noClientException); @@ -736,13 +736,13 @@ ProcRenderComposite (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_ALPHA (pMask, stuff->mask, client, SecurityReadAccess, + VERIFY_ALPHA (pMask, stuff->mask, client, DixReadAccess, RenderErrBase + BadPicture); if ((pSrc->pDrawable && pSrc->pDrawable->pScreen != pDst->pDrawable->pScreen) || (pMask && pMask->pDrawable && pDst->pDrawable->pScreen != pMask->pDrawable->pScreen)) @@ -782,9 +782,9 @@ ProcRenderTrapezoids (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -795,7 +795,7 @@ ProcRenderTrapezoids (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->maskFormat, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->maskFormat; @@ -829,9 +829,9 @@ ProcRenderTriangles (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -842,7 +842,7 @@ ProcRenderTriangles (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->maskFormat, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->maskFormat; @@ -876,9 +876,9 @@ ProcRenderTriStrip (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -889,7 +889,7 @@ ProcRenderTriStrip (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->maskFormat, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->maskFormat; @@ -923,9 +923,9 @@ ProcRenderTriFan (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -936,7 +936,7 @@ ProcRenderTriFan (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->maskFormat, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->maskFormat; @@ -988,7 +988,7 @@ ProcRenderCreateGlyphSet (ClientPtr client) format = (PictFormatPtr) SecurityLookupIDByType (client, stuff->format, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!format) { client->errorValue = stuff->format; @@ -1036,7 +1036,7 @@ ProcRenderReferenceGlyphSet (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, stuff->existing, GlyphSetType, - SecurityWriteAccess); + DixWriteAccess); if (!glyphSet) { client->errorValue = stuff->existing; @@ -1061,7 +1061,7 @@ ProcRenderFreeGlyphSet (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, stuff->glyphset, GlyphSetType, - SecurityDestroyAccess); + DixDestroyAccess); if (!glyphSet) { client->errorValue = stuff->glyphset; @@ -1095,7 +1095,7 @@ ProcRenderAddGlyphs (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, stuff->glyphset, GlyphSetType, - SecurityWriteAccess); + DixWriteAccess); if (!glyphSet) { client->errorValue = stuff->glyphset; @@ -1196,7 +1196,7 @@ ProcRenderFreeGlyphs (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, stuff->glyphset, GlyphSetType, - SecurityWriteAccess); + DixWriteAccess); if (!glyphSet) { client->errorValue = stuff->glyphset; @@ -1251,9 +1251,9 @@ ProcRenderCompositeGlyphs (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -1264,7 +1264,7 @@ ProcRenderCompositeGlyphs (ClientPtr client) pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->maskFormat, PictFormatType, - SecurityReadAccess); + DixReadAccess); if (!pFormat) { client->errorValue = stuff->maskFormat; @@ -1277,7 +1277,7 @@ ProcRenderCompositeGlyphs (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, stuff->glyphset, GlyphSetType, - SecurityReadAccess); + DixReadAccess); if (!glyphSet) { client->errorValue = stuff->glyphset; @@ -1339,7 +1339,7 @@ ProcRenderCompositeGlyphs (ClientPtr client) glyphSet = (GlyphSetPtr) SecurityLookupIDByType (client, gs, GlyphSetType, - SecurityReadAccess); + DixReadAccess); if (!glyphSet) { client->errorValue = gs; @@ -1420,7 +1420,7 @@ ProcRenderFillRectangles (ClientPtr client) client->errorValue = stuff->op; return BadValue; } - VERIFY_PICTURE (pDst, stuff->dst, client, SecurityWriteAccess, + VERIFY_PICTURE (pDst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pDst->pDrawable) return BadDrawable; @@ -1486,7 +1486,7 @@ ProcRenderCreateCursor (ClientPtr client) REQUEST_SIZE_MATCH (xRenderCreateCursorReq); LEGAL_NEW_RESOURCE(stuff->cid, client); - VERIFY_PICTURE (pSrc, stuff->src, client, SecurityReadAccess, + VERIFY_PICTURE (pSrc, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); if (!pSrc->pDrawable) return BadDrawable; @@ -1668,7 +1668,7 @@ ProcRenderSetPictureTransform (ClientPtr client) int result; REQUEST_SIZE_MATCH(xRenderSetPictureTransformReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); result = SetPictureTransform (pPicture, (PictTransform *) &stuff->transform); if (client->noClientException != Success) @@ -1694,7 +1694,7 @@ ProcRenderQueryFilters (ClientPtr client) char *names; REQUEST_SIZE_MATCH(xRenderQueryFiltersReq); - SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, SecurityReadAccess); + SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, DixReadAccess); pScreen = pDrawable->pScreen; nbytesName = 0; @@ -1797,7 +1797,7 @@ ProcRenderSetPictureFilter (ClientPtr client) char *name; REQUEST_AT_LEAST_SIZE (xRenderSetPictureFilterReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); name = (char *) (stuff + 1); params = (xFixed *) (name + ((stuff->nbytes + 3) & ~3)); @@ -1831,7 +1831,7 @@ ProcRenderCreateAnimCursor (ClientPtr client) for (i = 0; i < ncursor; i++) { cursors[i] = (CursorPtr)SecurityLookupIDByType(client, elt->cursor, - RT_CURSOR, SecurityReadAccess); + RT_CURSOR, DixReadAccess); if (!cursors[i]) { xfree (cursors); @@ -1859,7 +1859,7 @@ ProcRenderAddTraps (ClientPtr client) REQUEST(xRenderAddTrapsReq); REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq); - VERIFY_PICTURE (pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE (pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); if (!pPicture->pDrawable) return BadDrawable; @@ -2614,7 +2614,7 @@ PanoramiXRenderCreatePicture (ClientPtr client) REQUEST_AT_LEAST_SIZE(xRenderCreatePictureReq); if(!(refDraw = (PanoramiXRes *)SecurityLookupIDByClass( - client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess))) + client, stuff->drawable, XRC_DRAWABLE, DixWriteAccess))) return BadDrawable; if(!(newPict = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes)))) return BadAlloc; @@ -2656,7 +2656,7 @@ PanoramiXRenderChangePicture (ClientPtr client) REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq); - VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); FOR_NSCREENS_BACKWARD(j) { @@ -2677,7 +2677,7 @@ PanoramiXRenderSetPictureClipRectangles (ClientPtr client) REQUEST_AT_LEAST_SIZE(xRenderSetPictureClipRectanglesReq); - VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); FOR_NSCREENS_BACKWARD(j) { @@ -2698,7 +2698,7 @@ PanoramiXRenderSetPictureTransform (ClientPtr client) REQUEST_AT_LEAST_SIZE(xRenderSetPictureTransformReq); - VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); FOR_NSCREENS_BACKWARD(j) { @@ -2719,7 +2719,7 @@ PanoramiXRenderSetPictureFilter (ClientPtr client) REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq); - VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); FOR_NSCREENS_BACKWARD(j) { @@ -2742,7 +2742,7 @@ PanoramiXRenderFreePicture (ClientPtr client) client->errorValue = stuff->picture; - VERIFY_XIN_PICTURE(pict, stuff->picture, client, SecurityDestroyAccess, + VERIFY_XIN_PICTURE(pict, stuff->picture, client, DixDestroyAccess, RenderErrBase + BadPicture); @@ -2768,11 +2768,11 @@ PanoramiXRenderComposite (ClientPtr client) REQUEST_SIZE_MATCH(xRenderCompositeReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_ALPHA (msk, stuff->mask, client, SecurityReadAccess, + VERIFY_XIN_ALPHA (msk, stuff->mask, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); orig = *stuff; @@ -2816,9 +2816,9 @@ PanoramiXRenderCompositeGlyphs (ClientPtr client) INT16 xSrc, ySrc; REQUEST_AT_LEAST_SIZE(xRenderCompositeGlyphsReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); if (client->req_len << 2 >= (sizeof (xRenderCompositeGlyphsReq) + @@ -2859,7 +2859,7 @@ PanoramiXRenderFillRectangles (ClientPtr client) int extra_len; REQUEST_AT_LEAST_SIZE (xRenderFillRectanglesReq); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderFillRectanglesReq); if (extra_len && @@ -2906,9 +2906,9 @@ PanoramiXRenderTrapezoids(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderTrapezoidsReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderTrapezoidsReq); @@ -2968,9 +2968,9 @@ PanoramiXRenderTriangles(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderTrianglesReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderTrianglesReq); @@ -3026,9 +3026,9 @@ PanoramiXRenderTriStrip(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderTriStripReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderTriStripReq); @@ -3080,9 +3080,9 @@ PanoramiXRenderTriFan(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderTriFanReq); - VERIFY_XIN_PICTURE (src, stuff->src, client, SecurityReadAccess, + VERIFY_XIN_PICTURE (src, stuff->src, client, DixReadAccess, RenderErrBase + BadPicture); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderTriFanReq); @@ -3136,7 +3136,7 @@ PanoramiXRenderColorTrapezoids(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderColorTrapezoidsReq); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderColorTrapezoidsReq); @@ -3180,7 +3180,7 @@ PanoramiXRenderColorTriangles(ClientPtr client) REQUEST_AT_LEAST_SIZE (xRenderColorTrianglesReq); - VERIFY_XIN_PICTURE (dst, stuff->dst, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (dst, stuff->dst, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderColorTrianglesReq); @@ -3226,7 +3226,7 @@ PanoramiXRenderAddTraps (ClientPtr client) INT16 x_off, y_off; REQUEST_AT_LEAST_SIZE (xRenderAddTrapsReq); - VERIFY_XIN_PICTURE (picture, stuff->picture, client, SecurityWriteAccess, + VERIFY_XIN_PICTURE (picture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); extra_len = (client->req_len << 2) - sizeof (xRenderAddTrapsReq); if (extra_len && diff --git a/xfixes/cursor.c b/xfixes/cursor.c index c75e74442..21dbcc2cb 100755 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -242,7 +242,7 @@ ProcXFixesSelectCursorInput (ClientPtr client) REQUEST_SIZE_MATCH (xXFixesSelectCursorInputReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); if (stuff->eventMask & ~CursorAllEvents) @@ -415,7 +415,7 @@ ProcXFixesSetCursorName (ClientPtr client) Atom atom; REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq); - VERIFY_CURSOR(pCursor, stuff->cursor, client, SecurityWriteAccess); + VERIFY_CURSOR(pCursor, stuff->cursor, client, DixWriteAccess); tchar = (char *) &stuff[1]; atom = MakeAtom (tchar, stuff->nbytes, TRUE); if (atom == BAD_RESOURCE) @@ -448,7 +448,7 @@ ProcXFixesGetCursorName (ClientPtr client) int len; REQUEST_SIZE_MATCH(xXFixesGetCursorNameReq); - VERIFY_CURSOR(pCursor, stuff->cursor, client, SecurityReadAccess); + VERIFY_CURSOR(pCursor, stuff->cursor, client, DixReadAccess); if (pCursor->name) str = NameForAtom (pCursor->name); else @@ -679,8 +679,8 @@ ProcXFixesChangeCursor (ClientPtr client) REQUEST(xXFixesChangeCursorReq); REQUEST_SIZE_MATCH(xXFixesChangeCursorReq); - VERIFY_CURSOR (pSource, stuff->source, client, SecurityReadAccess); - VERIFY_CURSOR (pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_CURSOR (pSource, stuff->source, client, DixReadAccess); + VERIFY_CURSOR (pDestination, stuff->destination, client, DixWriteAccess); ReplaceCursor (pSource, TestForCursor, (pointer) pDestination); return (client->noClientException); @@ -714,7 +714,7 @@ ProcXFixesChangeCursorByName (ClientPtr client) REQUEST(xXFixesChangeCursorByNameReq); REQUEST_FIXED_SIZE(xXFixesChangeCursorByNameReq, stuff->nbytes); - VERIFY_CURSOR(pSource, stuff->source, client, SecurityReadAccess); + VERIFY_CURSOR(pSource, stuff->source, client, DixReadAccess); tchar = (char *) &stuff[1]; name = MakeAtom (tchar, stuff->nbytes, FALSE); if (name) diff --git a/xfixes/region.c b/xfixes/region.c index 68c701553..a004fc0ca 100755 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -118,7 +118,7 @@ ProcXFixesCreateRegionFromBitmap (ClientPtr client) pPixmap = (PixmapPtr) SecurityLookupIDByType (client, stuff->bitmap, RT_PIXMAP, - SecurityReadAccess); + DixReadAccess); if (!pPixmap) { client->errorValue = stuff->bitmap; @@ -225,7 +225,7 @@ ProcXFixesCreateRegionFromGC (ClientPtr client) REQUEST_SIZE_MATCH (xXFixesCreateRegionFromGCReq); LEGAL_NEW_RESOURCE (stuff->region, client); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess); + SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess); switch (pGC->clientClipType) { case CT_PIXMAP: @@ -273,7 +273,7 @@ ProcXFixesCreateRegionFromPicture (ClientPtr client) REQUEST_SIZE_MATCH (xXFixesCreateRegionFromPictureReq); LEGAL_NEW_RESOURCE (stuff->region, client); - VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityReadAccess, + VERIFY_PICTURE(pPicture, stuff->picture, client, DixReadAccess, RenderErrBase + BadPicture); switch (pPicture->clientClipType) { @@ -321,7 +321,7 @@ ProcXFixesDestroyRegion (ClientPtr client) RegionPtr pRegion; REQUEST_SIZE_MATCH(xXFixesDestroyRegionReq); - VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess); + VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess); FreeResource (stuff->region, RT_NONE); return(client->noClientException); } @@ -346,7 +346,7 @@ ProcXFixesSetRegion (ClientPtr client) REQUEST (xXFixesSetRegionReq); REQUEST_AT_LEAST_SIZE(xXFixesSetRegionReq); - VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess); + VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess); things = (client->req_len << 2) - sizeof (xXFixesCreateRegionReq); if (things & 4) @@ -384,8 +384,8 @@ ProcXFixesCopyRegion (ClientPtr client) RegionPtr pSource, pDestination; REQUEST (xXFixesCopyRegionReq); - VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess); - VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_REGION(pSource, stuff->source, client, DixReadAccess); + VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess); if (!REGION_COPY(pScreen, pDestination, pSource)) return BadAlloc; @@ -414,9 +414,9 @@ ProcXFixesCombineRegion (ClientPtr client) REQUEST (xXFixesCombineRegionReq); REQUEST_SIZE_MATCH (xXFixesCombineRegionReq); - VERIFY_REGION(pSource1, stuff->source1, client, SecurityReadAccess); - VERIFY_REGION(pSource2, stuff->source2, client, SecurityReadAccess); - VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_REGION(pSource1, stuff->source1, client, DixReadAccess); + VERIFY_REGION(pSource2, stuff->source2, client, DixReadAccess); + VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess); switch (stuff->xfixesReqType) { case X_XFixesUnionRegion: @@ -461,8 +461,8 @@ ProcXFixesInvertRegion (ClientPtr client) REQUEST(xXFixesInvertRegionReq); REQUEST_SIZE_MATCH(xXFixesInvertRegionReq); - VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess); - VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_REGION(pSource, stuff->source, client, DixReadAccess); + VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess); /* Compute bounds, limit to 16 bits */ bounds.x1 = stuff->x; @@ -509,7 +509,7 @@ ProcXFixesTranslateRegion (ClientPtr client) REQUEST(xXFixesTranslateRegionReq); REQUEST_SIZE_MATCH(xXFixesTranslateRegionReq); - VERIFY_REGION(pRegion, stuff->region, client, SecurityWriteAccess); + VERIFY_REGION(pRegion, stuff->region, client, DixWriteAccess); REGION_TRANSLATE(pScreen, pRegion, stuff->dx, stuff->dy); return (client->noClientException); @@ -536,8 +536,8 @@ ProcXFixesRegionExtents (ClientPtr client) REQUEST(xXFixesRegionExtentsReq); REQUEST_SIZE_MATCH(xXFixesRegionExtentsReq); - VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess); - VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_REGION(pSource, stuff->source, client, DixReadAccess); + VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess); REGION_RESET (0, pDestination, REGION_EXTENTS (0, pSource)); @@ -569,7 +569,7 @@ ProcXFixesFetchRegion (ClientPtr client) REQUEST(xXFixesFetchRegionReq); REQUEST_SIZE_MATCH(xXFixesFetchRegionReq); - VERIFY_REGION(pRegion, stuff->region, client, SecurityReadAccess); + VERIFY_REGION(pRegion, stuff->region, client, DixReadAccess); pExtent = REGION_EXTENTS (0, pRegion); pBox = REGION_RECTS (pRegion); @@ -633,8 +633,8 @@ ProcXFixesSetGCClipRegion (ClientPtr client) REQUEST(xXFixesSetGCClipRegionReq); REQUEST_SIZE_MATCH(xXFixesSetGCClipRegionReq); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityWriteAccess); - VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, SecurityReadAccess); + SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess); + VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, DixReadAccess); if (pRegion) { @@ -685,7 +685,7 @@ ProcXFixesSetWindowShapeRegion (ClientPtr client) client->errorValue = stuff->dest; return BadWindow; } - VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, SecurityWriteAccess); + VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, DixWriteAccess); pScreen = pWin->drawable.pScreen; switch (stuff->destKind) { case ShapeBounding: @@ -775,11 +775,11 @@ ProcXFixesSetPictureClipRegion (ClientPtr client) REQUEST(xXFixesSetPictureClipRegionReq); REQUEST_SIZE_MATCH (xXFixesSetPictureClipRegionReq); - VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess, + VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess, RenderErrBase + BadPicture); pScreen = pPicture->pDrawable->pScreen; ps = GetPictureScreen (pScreen); - VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, SecurityReadAccess); + VERIFY_REGION_OR_NONE(pRegion, stuff->region, client, DixReadAccess); return SetPictureClipRegion (pPicture, stuff->xOrigin, stuff->yOrigin, pRegion); @@ -815,8 +815,8 @@ ProcXFixesExpandRegion (ClientPtr client) int i; REQUEST_SIZE_MATCH (xXFixesExpandRegionReq); - VERIFY_REGION(pSource, stuff->source, client, SecurityReadAccess); - VERIFY_REGION(pDestination, stuff->destination, client, SecurityWriteAccess); + VERIFY_REGION(pSource, stuff->source, client, DixReadAccess); + VERIFY_REGION(pDestination, stuff->destination, client, DixWriteAccess); nBoxes = REGION_NUM_RECTS(pSource); pSrc = REGION_RECTS(pSource); diff --git a/xfixes/saveset.c b/xfixes/saveset.c index 9ebf24584..9ad2627c0 100755 --- a/xfixes/saveset.c +++ b/xfixes/saveset.c @@ -38,7 +38,7 @@ ProcXFixesChangeSaveSet(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id))) diff --git a/xfixes/select.c b/xfixes/select.c index 4c7a49def..a718715a1 100755 --- a/xfixes/select.c +++ b/xfixes/select.c @@ -196,7 +196,7 @@ ProcXFixesSelectSelectionInput (ClientPtr client) REQUEST_SIZE_MATCH (xXFixesSelectSelectionInputReq); pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - SecurityReadAccess); + DixReadAccess); if (!pWin) return(BadWindow); if (stuff->eventMask & ~SelectionAllEvents) From 60cdc592fe042c03ceb5d4c3344acfbbf5d8ae28 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 14:46:03 -0500 Subject: [PATCH 26/45] Add new, combined dix lookup functions. --- dix/dixutils.c | 186 ++++++++++++++++++++----------------- hw/xfree86/loader/dixsym.c | 12 ++- include/dix.h | 67 ++++++------- include/pixmap.h | 10 ++ 4 files changed, 148 insertions(+), 127 deletions(-) diff --git a/dix/dixutils.c b/dix/dixutils.c index fca55d99f..f9980c5a8 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -194,115 +194,129 @@ CompareISOLatin1Lowered(unsigned char *s1, int s1len, return (int) c1 - (int) c2; } -#ifdef XACE - -/* SecurityLookupWindow and SecurityLookupDrawable: - * Look up the window/drawable taking into account the client doing - * the lookup and the type of access desired. Return the window/drawable - * if it exists and the client is allowed access, else return NULL. - * Most Proc* functions should be calling these instead of - * LookupWindow and LookupDrawable, which do no access checks. - * XACE note: need to see if client->lastDrawableID can still be used here. +/* + * dixLookupWindow and dixLookupDrawable: + * Look up the window/drawable taking into account the client doing the + * lookup, the type of drawable desired, and the type of access desired. + * Return Success with *pDraw set if the window/drawable exists and the client + * is allowed access, else return an error code with *pDraw set to NULL. The + * access mask values are defined in resource.h. The type mask values are + * defined in pixmap.h, with zero equivalent to M_DRAWABLE. */ - -_X_EXPORT WindowPtr -SecurityLookupWindow(XID rid, ClientPtr client, Mask access_mode) +_X_EXPORT int +dixLookupDrawable(DrawablePtr *pDraw, XID id, ClientPtr client, + Mask type, Mask access) { - client->errorValue = rid; - if(rid == INVALID) - return NULL; - return (WindowPtr)SecurityLookupIDByType(client, rid, RT_WINDOW, access_mode); -} + DrawablePtr pTmp; + RESTYPE rtype; + *pDraw = NULL; + client->errorValue = id; + if (id == INVALID) + return BadDrawable; -_X_EXPORT pointer -SecurityLookupDrawable(XID rid, ClientPtr client, Mask access_mode) -{ - register DrawablePtr pDraw; + if (id == client->lastDrawableID) { + pTmp = client->lastDrawable; - if(rid == INVALID) - return (pointer) NULL; - pDraw = (DrawablePtr)SecurityLookupIDByClass(client, rid, RC_DRAWABLE, - access_mode); - if (pDraw && (pDraw->type != UNDRAWABLE_WINDOW)) - return (pointer)pDraw; - return (pointer)NULL; -} + /* an access check is required for cached drawables */ + rtype = (pTmp->type | M_WINDOW) ? RT_WINDOW : RT_PIXMAP; + if (!XaceHook(XACE_RESOURCE_ACCESS, client, id, rtype, access, pTmp)) + return BadDrawable; + } else + pTmp = (DrawablePtr)SecurityLookupIDByClass(client, id, RC_DRAWABLE, + access); + if (!pTmp) + return BadDrawable; + if (!((1 << pTmp->type) | (type ? type : M_DRAWABLE))) + return BadMatch; -/* We can't replace the LookupWindow and LookupDrawable functions with - * macros because of compatibility with loadable servers. - */ - -_X_EXPORT WindowPtr -LookupWindow(XID rid, ClientPtr client) -{ - return SecurityLookupWindow(rid, client, DixUnknownAccess); -} - -_X_EXPORT pointer -LookupDrawable(XID rid, ClientPtr client) -{ - return SecurityLookupDrawable(rid, client, DixUnknownAccess); -} - -#else /* not XACE */ - -WindowPtr -LookupWindow(XID rid, ClientPtr client) -{ - WindowPtr pWin; - - client->errorValue = rid; - if(rid == INVALID) - return NULL; - if (client->lastDrawableID == rid) - { - if (client->lastDrawable->type == DRAWABLE_WINDOW) - return ((WindowPtr) client->lastDrawable); - return (WindowPtr) NULL; - } - pWin = (WindowPtr)LookupIDByType(rid, RT_WINDOW); - if (pWin && pWin->drawable.type == DRAWABLE_WINDOW) { - client->lastDrawable = (DrawablePtr) pWin; - client->lastDrawableID = rid; + if (pTmp->type | M_DRAWABLE) { + client->lastDrawable = pTmp; + client->lastDrawableID = id; client->lastGCID = INVALID; client->lastGC = (GCPtr)NULL; } - return pWin; + *pDraw = pTmp; + return Success; } - -pointer -LookupDrawable(XID rid, ClientPtr client) +_X_EXPORT int +dixLookupWindow(WindowPtr *pWin, XID id, ClientPtr client, Mask access) { - register DrawablePtr pDraw; - - if(rid == INVALID) - return (pointer) NULL; - if (client->lastDrawableID == rid) - return ((pointer) client->lastDrawable); - pDraw = (DrawablePtr)LookupIDByClass(rid, RC_DRAWABLE); - if (pDraw && (pDraw->type != UNDRAWABLE_WINDOW)) - return (pointer)pDraw; - return (pointer)NULL; + int rc; + rc = dixLookupDrawable((DrawablePtr*)pWin, id, client, M_WINDOW, access); + return (rc == BadDrawable) ? BadWindow : rc; } -#endif /* XACE */ +_X_EXPORT int +dixLookupGC(GCPtr *pGC, XID id, ClientPtr client, Mask access) +{ + GCPtr pTmp = (GCPtr)SecurityLookupIDByType(client, id, RT_GC, access); + if (pTmp) { + *pGC = pTmp; + return Success; + } + client->errorValue = id; + *pGC = NULL; + return BadGC; +} -_X_EXPORT ClientPtr -LookupClient(XID rid, ClientPtr client) +_X_EXPORT int +dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client) { pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY, DixReadAccess); int clientIndex = CLIENT_ID(rid); - if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) - { - return clients[clientIndex]; + if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) { + *pClient = clients[clientIndex]; + return Success; } - return (ClientPtr)NULL; + *pClient = NULL; + return BadValue; } +/* + * These are deprecated compatibility functions and will be removed soon! + * Please use the new dixLookup*() functions above. + */ +_X_EXPORT WindowPtr +SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode) +{ + WindowPtr pWin; + int i = dixLookupWindow(&pWin, id, client, access_mode); + return (i == Success) ? pWin : NULL; +} + +_X_EXPORT WindowPtr +LookupWindow(XID id, ClientPtr client) +{ + return SecurityLookupWindow(id, client, DixUnknownAccess); +} + +_X_EXPORT pointer +SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode) +{ + DrawablePtr pDraw; + int i = dixLookupDrawable(&pDraw, id, client, access_mode, TRUE); + return (i == Success) ? pDraw : NULL; +} + +_X_EXPORT pointer +LookupDrawable(XID id, ClientPtr client) +{ + return SecurityLookupDrawable(id, client, DixUnknownAccess); +} + +_X_EXPORT ClientPtr +LookupClient(XID id, ClientPtr client) +{ + ClientPtr pClient; + int i = dixLookupClient(&pClient, id, client); + return (i == Success) ? pClient : NULL; +} + +/* end deprecated functions */ int AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode, diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c index 27a3093b1..32e0e4f68 100644 --- a/hw/xfree86/loader/dixsym.c +++ b/hw/xfree86/loader/dixsym.c @@ -155,17 +155,21 @@ _X_HIDDEN void *dixLookupTab[] = { SYMFUNC(CompareTimeStamps) SYMFUNC(CopyISOLatin1Lowered) SYMFUNC(DeleteCallback) + SYMFUNC(dixLookupDrawable) + SYMFUNC(dixLookupWindow) + SYMFUNC(dixLookupClient) + SYMFUNC(dixLookupGC) + /* following are deprecated */ SYMFUNC(LookupClient) SYMFUNC(LookupDrawable) SYMFUNC(LookupWindow) + SYMFUNC(SecurityLookupDrawable) + SYMFUNC(SecurityLookupWindow) + /* end deprecated */ SYMFUNC(NoopDDA) SYMFUNC(QueueWorkProc) SYMFUNC(RegisterBlockAndWakeupHandlers) SYMFUNC(RemoveBlockAndWakeupHandlers) -#ifdef XACE - SYMFUNC(SecurityLookupDrawable) - SYMFUNC(SecurityLookupWindow) -#endif /* events.c */ SYMFUNC(CheckCursorConfinement) SYMFUNC(DeliverEvents) diff --git a/include/dix.h b/include/dix.h index 2c87a48c3..09d5fef95 100644 --- a/include/dix.h +++ b/include/dix.h @@ -375,47 +375,40 @@ extern int CompareISOLatin1Lowered( unsigned char * /*b*/, int blen); -#ifdef XACE +extern int dixLookupWindow( + WindowPtr *result, + XID id, + ClientPtr client, + Mask access_mode); -extern WindowPtr SecurityLookupWindow( - XID /*rid*/, - ClientPtr /*client*/, - Mask /*access_mode*/); +extern int dixLookupDrawable( + DrawablePtr *result, + XID id, + ClientPtr client, + Mask type_mask, + Mask access_mode); -extern pointer SecurityLookupDrawable( - XID /*rid*/, - ClientPtr /*client*/, - Mask /*access_mode*/); +extern int dixLookupGC( + GCPtr *result, + XID id, + ClientPtr client, + Mask access_mode); -extern WindowPtr LookupWindow( - XID /*rid*/, - ClientPtr /*client*/); +extern int dixLookupClient( + ClientPtr *result, + XID id, + ClientPtr client); -extern pointer LookupDrawable( - XID /*rid*/, - ClientPtr /*client*/); - -#else - -extern WindowPtr LookupWindow( - XID /*rid*/, - ClientPtr /*client*/); - -extern pointer LookupDrawable( - XID /*rid*/, - ClientPtr /*client*/); - -#define SecurityLookupWindow(rid, client, access_mode) \ - LookupWindow(rid, client) - -#define SecurityLookupDrawable(rid, client, access_mode) \ - LookupDrawable(rid, client) - -#endif /* XACE */ - -extern ClientPtr LookupClient( - XID /*rid*/, - ClientPtr /*client*/); +/* + * These are deprecated compatibility functions and will be removed soon! + * Please use the new dixLookup*() functions above. + */ +extern WindowPtr SecurityLookupWindow(XID, ClientPtr, Mask); +extern WindowPtr LookupWindow(XID, ClientPtr); +extern pointer SecurityLookupDrawable(XID, ClientPtr, Mask); +extern pointer LookupDrawable(XID, ClientPtr); +extern ClientPtr LookupClient(XID, ClientPtr); +/* end deprecated functions */ extern void NoopDDA(void); diff --git a/include/pixmap.h b/include/pixmap.h index 3276fadb6..19e682a50 100644 --- a/include/pixmap.h +++ b/include/pixmap.h @@ -58,6 +58,16 @@ SOFTWARE. #define UNDRAWABLE_WINDOW 2 #define DRAWABLE_BUFFER 3 +/* corresponding type masks for dixLookupDrawable() */ +#define M_DRAWABLE_WINDOW (1<<0) +#define M_DRAWABLE_PIXMAP (1<<1) +#define M_UNDRAWABLE_WINDOW (1<<2) +#define M_DRAWABLE_BUFFER (1<<3) +#define M_ANY (-1) +#define M_WINDOW (M_DRAWABLE_WINDOW|M_UNDRAWABLE_WINDOW) +#define M_DRAWABLE (M_DRAWABLE_WINDOW|M_DRAWABLE_PIXMAP|M_DRAWABLE_BUFFER) +#define M_UNDRAWABLE (M_UNDRAWABLE_WINDOW) + /* flags to PaintWindow() */ #define PW_BACKGROUND 0 #define PW_BORDER 1 From ab1886df73b73360fa3bd7ce8e01affc074cbc8d Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 15:42:19 -0500 Subject: [PATCH 27/45] Add new, combined dix lookup functions (tweak). --- dix/dixutils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/dixutils.c b/dix/dixutils.c index f9980c5a8..3479ddccf 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -298,7 +298,7 @@ _X_EXPORT pointer SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode) { DrawablePtr pDraw; - int i = dixLookupDrawable(&pDraw, id, client, access_mode, TRUE); + int i = dixLookupDrawable(&pDraw, id, client, M_DRAWABLE, access_mode); return (i == Success) ? pDraw : NULL; } From 0cf75e74322e2b6a6efc7acf892e04365fde503b Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 17:27:12 -0500 Subject: [PATCH 28/45] Remove instances of macros LOOKUP_DRAWABLE and VERIFY_DRAWABLE. --- Xext/panoramiXprocs.c | 25 ++++++++++++++++++------- Xext/shm.c | 24 +++++++++++++++++------- Xext/xvdisp.c | 23 ++++++++++------------- 3 files changed, 45 insertions(+), 27 deletions(-) diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 683308425..77a2384c4 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -1028,10 +1028,14 @@ int PanoramiXCopyArea(ClientPtr client) DrawablePtr pDst; GCPtr pGC; char *data; - int pitch; + int pitch, rc; - FOR_NSCREENS(j) - VERIFY_DRAWABLE(drawables[j], src->info[j].id, client); + FOR_NSCREENS(j) { + rc = dixLookupDrawable(drawables+j, src->info[j].id, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; + } pitch = PixmapBytePad(stuff->width, drawables[0]->depth); if(!(data = xcalloc(1, stuff->height * pitch))) @@ -1754,7 +1758,7 @@ int PanoramiXGetImage(ClientPtr client) xGetImageReply xgi; Bool isRoot; char *pBuf; - int i, x, y, w, h, format; + int i, x, y, w, h, format, rc; Mask plane = 0, planemask; int linesDone, nlines, linesPerBuf; long widthBytesLine, length; @@ -1775,7 +1779,10 @@ int PanoramiXGetImage(ClientPtr client) if(draw->type == XRT_PIXMAP) return (*SavedProcVector[X_GetImage])(client); - VERIFY_DRAWABLE(pDraw, stuff->drawable, client); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; if(!((WindowPtr)pDraw)->realized) return(BadMatch); @@ -1809,8 +1816,12 @@ int PanoramiXGetImage(ClientPtr client) } drawables[0] = pDraw; - for(i = 1; i < PanoramiXNumScreens; i++) - VERIFY_DRAWABLE(drawables[i], draw->info[i].id, client); + for(i = 1; i < PanoramiXNumScreens; i++) { + rc = dixLookupDrawable(drawables+i, draw->info[i].id, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; + } xgi.visual = wVisual (((WindowPtr) pDraw)); xgi.type = X_Reply; diff --git a/Xext/shm.c b/Xext/shm.c index 0c2299a61..049c746d6 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -606,7 +606,7 @@ ProcPanoramiXShmGetImage(ClientPtr client) DrawablePtr pDraw; xShmGetImageReply xgi; ShmDescPtr shmdesc; - int i, x, y, w, h, format; + int i, x, y, w, h, format, rc; Mask plane = 0, planemask; long lenPer = 0, length, widthBytesLine; Bool isRoot; @@ -627,7 +627,10 @@ ProcPanoramiXShmGetImage(ClientPtr client) if (draw->type == XRT_PIXMAP) return ProcShmGetImage(client); - VERIFY_DRAWABLE(pDraw, stuff->drawable, client); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); @@ -660,8 +663,12 @@ ProcPanoramiXShmGetImage(ClientPtr client) } drawables[0] = pDraw; - for(i = 1; i < PanoramiXNumScreens; i++) - VERIFY_DRAWABLE(drawables[i], draw->info[i].id, client); + for(i = 1; i < PanoramiXNumScreens; i++) { + rc = dixLookupDrawable(drawables+i, draw->info[i].id, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; + } xgi.visual = wVisual(((WindowPtr)pDraw)); xgi.type = X_Reply; @@ -909,12 +916,12 @@ static int ProcShmGetImage(client) register ClientPtr client; { - register DrawablePtr pDraw; + DrawablePtr pDraw; long lenPer = 0, length; Mask plane = 0; xShmGetImageReply xgi; ShmDescPtr shmdesc; - int n; + int n, rc; REQUEST(xShmGetImageReq); @@ -924,7 +931,10 @@ ProcShmGetImage(client) client->errorValue = stuff->format; return(BadValue); } - VERIFY_DRAWABLE(pDraw, stuff->drawable, client); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); if (pDraw->type == DRAWABLE_WINDOW) { diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c index ec2b4f8d7..d66604471 100644 --- a/Xext/xvdisp.c +++ b/Xext/xvdisp.c @@ -717,15 +717,14 @@ ProcXvGetStill(ClientPtr client) static int ProcXvSelectVideoNotify(ClientPtr client) { - register DrawablePtr pDraw; + DrawablePtr pDraw; + int rc; REQUEST(xvSelectVideoNotifyReq); REQUEST_SIZE_MATCH(xvSelectVideoNotifyReq); - if(!(pDraw = (DrawablePtr)LOOKUP_DRAWABLE(stuff->drawable, client) )) - { - client->errorValue = stuff->drawable; - return (BadWindow); - } + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixUnknownAccess); + if (rc != Success) + return rc; return XVCALL(diSelectVideoNotify)(client, pDraw, stuff->onoff); @@ -822,8 +821,8 @@ ProcXvUngrabPort(ClientPtr client) static int ProcXvStopVideo(ClientPtr client) { - int status; - register DrawablePtr pDraw; + int status, rc; + DrawablePtr pDraw; XvPortPtr pPort; REQUEST(xvStopVideoReq); REQUEST_SIZE_MATCH(xvStopVideoReq); @@ -840,11 +839,9 @@ ProcXvStopVideo(ClientPtr client) return (status); } - if(!(pDraw = LOOKUP_DRAWABLE(stuff->drawable, client) )) - { - client->errorValue = stuff->drawable; - return (BadDrawable); - } + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixUnknownAccess); + if (rc != Success) + return rc; return XVCALL(diStopVideo)(client, pPort, pDraw); From 51b69ff499c05f59cb1e577c4e8abf6f7f283b3e Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 17:53:43 -0500 Subject: [PATCH 29/45] Remove instances of macro SECURITY_VERIFY_DRAWABLE. --- Xext/panoramiXprocs.c | 17 ++++++++++++----- damageext/damageext.c | 8 ++++++-- dix/dispatch.c | 36 ++++++++++++++++++++++++------------ randr/rrscreen.c | 7 ++++--- render/render.c | 19 +++++++++++-------- 5 files changed, 57 insertions(+), 30 deletions(-) diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 77a2384c4..2bf94a998 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -1069,6 +1069,7 @@ int PanoramiXCopyArea(ClientPtr client) DrawablePtr pDst = NULL, pSrc = NULL; GCPtr pGC = NULL; RegionPtr pRgn[MAXSCREENS]; + int rc; FOR_NSCREENS_BACKWARD(j) { stuff->dstDrawable = dst->info[j].id; @@ -1085,8 +1086,11 @@ int PanoramiXCopyArea(ClientPtr client) VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { - SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client, - DixReadAccess); + rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; + if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) { client->errorValue = stuff->dstDrawable; @@ -1137,7 +1141,7 @@ int PanoramiXCopyArea(ClientPtr client) int PanoramiXCopyPlane(ClientPtr client) { - int j, srcx, srcy, dstx, dsty; + int j, srcx, srcy, dstx, dsty, rc; PanoramiXRes *gc, *src, *dst; Bool srcIsRoot = FALSE; Bool dstIsRoot = FALSE; @@ -1191,8 +1195,11 @@ int PanoramiXCopyPlane(ClientPtr client) VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { - SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client, - DixReadAccess); + rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; + if (pdstDraw->pScreen != psrcDraw->pScreen) { client->errorValue = stuff->dstDrawable; return (BadMatch); diff --git a/damageext/damageext.c b/damageext/damageext.c index c8f28e953..6083693a4 100755 --- a/damageext/damageext.c +++ b/damageext/damageext.c @@ -173,13 +173,17 @@ ProcDamageCreate (ClientPtr client) DamageExtPtr pDamageExt; DamageReportLevel level; RegionPtr pRegion; + int rc; REQUEST(xDamageCreateReq); REQUEST_SIZE_MATCH(xDamageCreateReq); LEGAL_NEW_RESOURCE(stuff->damage, client); - SECURITY_VERIFY_DRAWABLE (pDrawable, stuff->drawable, client, - DixReadAccess); + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; + switch (stuff->level) { case XDamageReportRawRectangles: level = DamageReportRawRegion; diff --git a/dix/dispatch.c b/dix/dispatch.c index a3de07fed..8134cd5a5 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -1597,17 +1597,19 @@ ProcFreePixmap(register ClientPtr client) int ProcCreateGC(register ClientPtr client) { - int error; + int error, rc; GC *pGC; - register DrawablePtr pDraw; + DrawablePtr pDraw; unsigned len; REQUEST(xCreateGCReq); REQUEST_AT_LEAST_SIZE(xCreateGCReq); client->errorValue = stuff->gc; LEGAL_NEW_RESOURCE(stuff->gc, client); - SECURITY_VERIFY_DRAWABLE (pDraw, stuff->drawable, client, - DixReadAccess); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixReadAccess); + if (rc != Success) + return rc; + len = client->req_len - (sizeof(xCreateGCReq) >> 2); if (len != Ones(stuff->mask)) return BadLength; @@ -1766,18 +1768,21 @@ int ProcCopyArea(register ClientPtr client) { register DrawablePtr pDst; - register DrawablePtr pSrc; + DrawablePtr pSrc; register GC *pGC; REQUEST(xCopyAreaReq); RegionPtr pRgn; + int rc; REQUEST_SIZE_MATCH(xCopyAreaReq); VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pDst, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { - SECURITY_VERIFY_DRAWABLE(pSrc, stuff->srcDrawable, client, + rc = dixLookupDrawable(&pSrc, stuff->srcDrawable, client, 0, DixReadAccess); + if (rc != Success) + return rc; if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth)) { client->errorValue = stuff->dstDrawable; @@ -1806,18 +1811,22 @@ ProcCopyArea(register ClientPtr client) int ProcCopyPlane(register ClientPtr client) { - register DrawablePtr psrcDraw, pdstDraw; + DrawablePtr psrcDraw, pdstDraw; register GC *pGC; REQUEST(xCopyPlaneReq); RegionPtr pRgn; + int rc; REQUEST_SIZE_MATCH(xCopyPlaneReq); VALIDATE_DRAWABLE_AND_GC(stuff->dstDrawable, pdstDraw, pGC, client); if (stuff->dstDrawable != stuff->srcDrawable) { - SECURITY_VERIFY_DRAWABLE(psrcDraw, stuff->srcDrawable, client, - DixReadAccess); + rc = dixLookupDrawable(&psrcDraw, stuff->srcDrawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; + if (pdstDraw->pScreen != psrcDraw->pScreen) { client->errorValue = stuff->dstDrawable; @@ -2142,8 +2151,8 @@ DoGetImage(register ClientPtr client, int format, Drawable drawable, int x, int y, int width, int height, Mask planemask, xGetImageReply **im_return) { - register DrawablePtr pDraw; - int nlines, linesPerBuf; + DrawablePtr pDraw; + int nlines, linesPerBuf, rc; register int linesDone; long widthBytesLine, length; Mask plane = 0; @@ -2156,7 +2165,10 @@ DoGetImage(register ClientPtr client, int format, Drawable drawable, client->errorValue = format; return(BadValue); } - SECURITY_VERIFY_DRAWABLE(pDraw, drawable, client, DixReadAccess); + rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixReadAccess); + if (rc != Success) + return rc; + if(pDraw->type == DRAWABLE_WINDOW) { if( /* check for being viewable */ diff --git a/randr/rrscreen.c b/randr/rrscreen.c index b4004a31f..3b9263bc4 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -703,7 +703,7 @@ ProcRRSetScreenConfig (ClientPtr client) REQUEST(xRRSetScreenConfigReq); xRRSetScreenConfigReply rep; DrawablePtr pDraw; - int n; + int n, rc; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; TimeStamp configTime; @@ -730,8 +730,9 @@ ProcRRSetScreenConfig (ClientPtr client) has_rate = FALSE; } - SECURITY_VERIFY_DRAWABLE(pDraw, stuff->drawable, client, - DixWriteAccess); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess); + if (rc != Success) + return rc; pScreen = pDraw->pScreen; diff --git a/render/render.c b/render/render.c index 51a3fa69a..126d08daf 100644 --- a/render/render.c +++ b/render/render.c @@ -614,15 +614,17 @@ ProcRenderCreatePicture (ClientPtr client) PicturePtr pPicture; DrawablePtr pDrawable; PictFormatPtr pFormat; - int len; - int error; + int len, error, rc; REQUEST(xRenderCreatePictureReq); REQUEST_AT_LEAST_SIZE(xRenderCreatePictureReq); LEGAL_NEW_RESOURCE(stuff->pid, client); - SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, - DixWriteAccess); + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixWriteAccess); + if (rc != Success) + return rc; + pFormat = (PictFormatPtr) SecurityLookupIDByType (client, stuff->format, PictFormatType, @@ -1687,14 +1689,15 @@ ProcRenderQueryFilters (ClientPtr client) int nnames; ScreenPtr pScreen; PictureScreenPtr ps; - int i, j; - int len; - int total_bytes; + int i, j, len, total_bytes, rc; INT16 *aliases; char *names; REQUEST_SIZE_MATCH(xRenderQueryFiltersReq); - SECURITY_VERIFY_DRAWABLE(pDrawable, stuff->drawable, client, DixReadAccess); + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; pScreen = pDrawable->pScreen; nbytesName = 0; From 5e334f06a1ef89891f9df2a371e4662340bec26b Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 18:27:09 -0500 Subject: [PATCH 30/45] Remove instances of macros VERIFY_GEOMETRABLE and VERIFY_GC. --- Xext/panoramiXprocs.c | 6 +++++- Xext/shm.c | 18 +++++++++++++----- Xext/xf86bigfont.c | 1 - dix/dispatch.c | 1 - 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index 2bf94a998..a193c4188 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -531,10 +531,14 @@ int PanoramiXGetGeometry(ClientPtr client) { xGetGeometryReply rep; DrawablePtr pDraw; + int rc; REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - VERIFY_GEOMETRABLE (pDraw, stuff->id, client); + rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; diff --git a/Xext/shm.c b/Xext/shm.c index 049c746d6..4e733197c 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -727,7 +727,7 @@ ProcPanoramiXShmCreatePixmap( PixmapPtr pMap = NULL; DrawablePtr pDraw; DepthPtr pDepth; - int i, j, result; + int i, j, result, rc; ShmDescPtr shmdesc; REQUEST(xShmCreatePixmapReq); PanoramiXRes *newPix; @@ -737,7 +737,11 @@ ProcPanoramiXShmCreatePixmap( if (!sharedPixmaps) return BadImplementation; LEGAL_NEW_RESOURCE(stuff->pid, client); - VERIFY_GEOMETRABLE(pDraw, stuff->drawable, client); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY, + DixUnknownAccess); + if (rc != Success) + return rc; + VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); if (!stuff->width || !stuff->height) { @@ -1052,9 +1056,9 @@ ProcShmCreatePixmap(client) register ClientPtr client; { PixmapPtr pMap; - register DrawablePtr pDraw; + DrawablePtr pDraw; DepthPtr pDepth; - register int i; + register int i, rc; ShmDescPtr shmdesc; REQUEST(xShmCreatePixmapReq); @@ -1063,7 +1067,11 @@ ProcShmCreatePixmap(client) if (!sharedPixmaps) return BadImplementation; LEGAL_NEW_RESOURCE(stuff->pid, client); - VERIFY_GEOMETRABLE(pDraw, stuff->drawable, client); + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY, + DixUnknownAccess); + if (rc != Success) + return rc; + VERIFY_SHMPTR(stuff->shmseg, stuff->offset, TRUE, shmdesc, client); if (!stuff->width || !stuff->height) { diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c index 44647060a..f50481f78 100644 --- a/Xext/xf86bigfont.c +++ b/Xext/xf86bigfont.c @@ -447,7 +447,6 @@ ProcXF86BigfontQueryFont( pFont = (FontPtr)SecurityLookupIDByType(client, stuff->id, RT_FONT, DixReadAccess); if (!pFont) { - /* can't use VERIFY_GC because it might return BadGC */ GC *pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC, DixReadAccess); if (!pGC) { diff --git a/dix/dispatch.c b/dix/dispatch.c index 8134cd5a5..a5a1d0374 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -1385,7 +1385,6 @@ ProcQueryFont(register ClientPtr client) DixReadAccess); if (!pFont) { - /* can't use VERIFY_GC because it might return BadGC */ pGC = (GC *) SecurityLookupIDByType(client, stuff->id, RT_GC, DixReadAccess); if (!pGC) From 00f0705b3bb444ac934fc902cd23130f1777eab2 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 19:15:21 -0500 Subject: [PATCH 31/45] Remove instances of macros SECURITY_VERIFY_GEOMETRABLE and SECURITY_VERIFY_GC. --- Xext/shm.c | 4 +- Xext/xvdisp.c | 16 +++--- dix/dispatch.c | 132 +++++++++++++++++++++++++++++------------------- include/dix.h | 13 +++-- xfixes/region.c | 13 +++-- 5 files changed, 108 insertions(+), 70 deletions(-) diff --git a/Xext/shm.c b/Xext/shm.c index 4e733197c..7cfaa6808 100644 --- a/Xext/shm.c +++ b/Xext/shm.c @@ -816,8 +816,8 @@ static int ProcShmPutImage(client) register ClientPtr client; { - register GCPtr pGC; - register DrawablePtr pDraw; + GCPtr pGC; + DrawablePtr pDraw; long length; ShmDescPtr shmdesc; REQUEST(xShmPutImageReq); diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c index d66604471..2afb7c687 100644 --- a/Xext/xvdisp.c +++ b/Xext/xvdisp.c @@ -531,9 +531,9 @@ ProcXvQueryEncodings(ClientPtr client) static int ProcXvPutVideo(ClientPtr client) { - register DrawablePtr pDraw; + DrawablePtr pDraw; XvPortPtr pPort; - register GCPtr pGC; + GCPtr pGC; int status; REQUEST(xvPutVideoReq); @@ -577,9 +577,9 @@ ProcXvPutVideo(ClientPtr client) static int ProcXvPutStill(ClientPtr client) { - register DrawablePtr pDraw; + DrawablePtr pDraw; XvPortPtr pPort; - register GCPtr pGC; + GCPtr pGC; int status; REQUEST(xvPutStillReq); @@ -624,9 +624,9 @@ ProcXvPutStill(ClientPtr client) static int ProcXvGetVideo(ClientPtr client) { - register DrawablePtr pDraw; + DrawablePtr pDraw; XvPortPtr pPort; - register GCPtr pGC; + GCPtr pGC; int status; REQUEST(xvGetVideoReq); @@ -671,9 +671,9 @@ ProcXvGetVideo(ClientPtr client) static int ProcXvGetStill(ClientPtr client) { - register DrawablePtr pDraw; + DrawablePtr pDraw; XvPortPtr pPort; - register GCPtr pGC; + GCPtr pGC; int status; REQUEST(xvGetStillReq); diff --git a/dix/dispatch.c b/dix/dispatch.c index a5a1d0374..0421886a0 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -843,11 +843,15 @@ ProcCirculateWindow(register ClientPtr client) int GetGeometry(register ClientPtr client, xGetGeometryReply *rep) { - register DrawablePtr pDraw; + DrawablePtr pDraw; + int rc; REQUEST(xResourceReq); - REQUEST_SIZE_MATCH(xResourceReq); - SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->id, client, DixReadAccess); + + rc = dixLookupDrawable(&pDraw, stuff->id, client, M_ANY, DixReadAccess); + if (rc != Success) + return rc; + rep->type = X_Reply; rep->length = 0; rep->sequenceNumber = client->sequence; @@ -1516,16 +1520,20 @@ int ProcCreatePixmap(register ClientPtr client) { PixmapPtr pMap; - register DrawablePtr pDraw; + DrawablePtr pDraw; REQUEST(xCreatePixmapReq); DepthPtr pDepth; - register int i; + register int i, rc; REQUEST_SIZE_MATCH(xCreatePixmapReq); client->errorValue = stuff->pid; LEGAL_NEW_RESOURCE(stuff->pid, client); - SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client, - DixReadAccess); + + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY, + DixReadAccess); + if (rc != Success) + return rc; + if (!stuff->width || !stuff->height) { client->errorValue = 0; @@ -1625,12 +1633,15 @@ int ProcChangeGC(register ClientPtr client) { GC *pGC; - REQUEST(xChangeGCReq); int result; unsigned len; - + REQUEST(xChangeGCReq); REQUEST_AT_LEAST_SIZE(xChangeGCReq); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess); + + result = dixLookupGC(&pGC, stuff->gc, client, DixWriteAccess); + if (result != Success) + return result; + len = client->req_len - (sizeof(xChangeGCReq) >> 2); if (len != Ones(stuff->mask)) return BadLength; @@ -1648,14 +1659,18 @@ ProcChangeGC(register ClientPtr client) int ProcCopyGC(register ClientPtr client) { - register GC *dstGC; - register GC *pGC; + GC *dstGC; + GC *pGC; int result; REQUEST(xCopyGCReq); - REQUEST_SIZE_MATCH(xCopyGCReq); - SECURITY_VERIFY_GC( pGC, stuff->srcGC, client, DixReadAccess); - SECURITY_VERIFY_GC( dstGC, stuff->dstGC, client, DixWriteAccess); + + result = dixLookupGC(&pGC, stuff->srcGC, client, DixReadAccess); + if (result != Success) + return result; + result = dixLookupGC(&dstGC, stuff->dstGC, client, DixWriteAccess); + if (result != Success) + return result; if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth)) return (BadMatch); result = CopyGC(pGC, dstGC, stuff->mask); @@ -1671,7 +1686,7 @@ ProcCopyGC(register ClientPtr client) int ProcSetDashes(register ClientPtr client) { - register GC *pGC; + GC *pGC; int result; REQUEST(xSetDashesReq); @@ -1682,7 +1697,9 @@ ProcSetDashes(register ClientPtr client) return BadValue; } - SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess); + result = dixLookupGC(&pGC,stuff->gc, client, DixWriteAccess); + if (result != Success) + return result; result = SetDashes(pGC, stuff->dashOffset, stuff->nDashes, (unsigned char *)&stuff[1]); @@ -1698,9 +1715,8 @@ ProcSetDashes(register ClientPtr client) int ProcSetClipRectangles(register ClientPtr client) { - int nr; - int result; - register GC *pGC; + int nr, result; + GC *pGC; REQUEST(xSetClipRectanglesReq); REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq); @@ -1710,7 +1726,9 @@ ProcSetClipRectangles(register ClientPtr client) client->errorValue = stuff->ordering; return BadValue; } - SECURITY_VERIFY_GC(pGC,stuff->gc, client, DixWriteAccess); + result = dixLookupGC(&pGC,stuff->gc, client, DixWriteAccess); + if (result != Success) + return result; nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq); if (nr & 4) @@ -1727,11 +1745,15 @@ ProcSetClipRectangles(register ClientPtr client) int ProcFreeGC(register ClientPtr client) { - register GC *pGC; + GC *pGC; + int rc; REQUEST(xResourceReq); - REQUEST_SIZE_MATCH(xResourceReq); - SECURITY_VERIFY_GC(pGC, stuff->id, client, DixDestroyAccess); + + rc = dixLookupGC(&pGC, stuff->id, client, DixDestroyAccess); + if (rc != Success) + return rc; + FreeResource(stuff->id, RT_NONE); return(client->noClientException); } @@ -1766,9 +1788,9 @@ ProcClearToBackground(register ClientPtr client) int ProcCopyArea(register ClientPtr client) { - register DrawablePtr pDst; + DrawablePtr pDst; DrawablePtr pSrc; - register GC *pGC; + GC *pGC; REQUEST(xCopyAreaReq); RegionPtr pRgn; int rc; @@ -1811,7 +1833,7 @@ int ProcCopyPlane(register ClientPtr client) { DrawablePtr psrcDraw, pdstDraw; - register GC *pGC; + GC *pGC; REQUEST(xCopyPlaneReq); RegionPtr pRgn; int rc; @@ -1862,8 +1884,8 @@ int ProcPolyPoint(register ClientPtr client) { int npoint; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyPointReq); REQUEST_AT_LEAST_SIZE(xPolyPointReq); @@ -1885,8 +1907,8 @@ int ProcPolyLine(register ClientPtr client) { int npoint; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyLineReq); REQUEST_AT_LEAST_SIZE(xPolyLineReq); @@ -1908,8 +1930,8 @@ int ProcPolySegment(register ClientPtr client) { int nsegs; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolySegmentReq); REQUEST_AT_LEAST_SIZE(xPolySegmentReq); @@ -1927,8 +1949,8 @@ int ProcPolyRectangle (register ClientPtr client) { int nrects; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyRectangleReq); REQUEST_AT_LEAST_SIZE(xPolyRectangleReq); @@ -1947,8 +1969,8 @@ int ProcPolyArc(register ClientPtr client) { int narcs; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyArcReq); REQUEST_AT_LEAST_SIZE(xPolyArcReq); @@ -1966,8 +1988,8 @@ int ProcFillPoly(register ClientPtr client) { int things; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xFillPolyReq); REQUEST_AT_LEAST_SIZE(xFillPolyReq); @@ -1997,8 +2019,8 @@ int ProcPolyFillRectangle(register ClientPtr client) { int things; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyFillRectangleReq); REQUEST_AT_LEAST_SIZE(xPolyFillRectangleReq); @@ -2018,8 +2040,8 @@ int ProcPolyFillArc(register ClientPtr client) { int narcs; - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; REQUEST(xPolyFillArcReq); REQUEST_AT_LEAST_SIZE(xPolyFillArcReq); @@ -2090,8 +2112,8 @@ ReformatImage (char *base, int nbytes, int bpp, int order) int ProcPutImage(register ClientPtr client) { - register GC *pGC; - register DrawablePtr pDraw; + GC *pGC; + DrawablePtr pDraw; long length; /* length of scanline server padded */ long lengthProto; /* length of scanline protocol padded */ char *tmpImage; @@ -2411,8 +2433,8 @@ int ProcImageText8(register ClientPtr client) { int err; - register DrawablePtr pDraw; - register GC *pGC; + DrawablePtr pDraw; + GC *pGC; REQUEST(xImageTextReq); @@ -2441,8 +2463,8 @@ int ProcImageText16(register ClientPtr client) { int err; - register DrawablePtr pDraw; - register GC *pGC; + DrawablePtr pDraw; + GC *pGC; REQUEST(xImageTextReq); @@ -3195,11 +3217,12 @@ int ProcQueryBestSize (register ClientPtr client) { xQueryBestSizeReply reply; - register DrawablePtr pDraw; + DrawablePtr pDraw; ScreenPtr pScreen; + int rc; REQUEST(xQueryBestSizeReq); - REQUEST_SIZE_MATCH(xQueryBestSizeReq); + if ((stuff->class != CursorShape) && (stuff->class != TileShape) && (stuff->class != StippleShape)) @@ -3207,8 +3230,11 @@ ProcQueryBestSize (register ClientPtr client) client->errorValue = stuff->class; return(BadValue); } - SECURITY_VERIFY_GEOMETRABLE (pDraw, stuff->drawable, client, - DixReadAccess); + + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY, + DixReadAccess); + if (rc != Success) + return rc; if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW) return (BadMatch); pScreen = pDraw->pScreen; diff --git a/include/dix.h b/include/dix.h index 09d5fef95..7dd321f22 100644 --- a/include/dix.h +++ b/include/dix.h @@ -239,10 +239,15 @@ SOFTWARE. if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\ (client->lastDrawableID != drawID))\ {\ - SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, DixWriteAccess);\ - SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess);\ - if ((pGC->depth != pDraw->depth) ||\ - (pGC->pScreen != pDraw->pScreen))\ + int rc;\ + rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY,\ + DixWriteAccess);\ + if (rc != Success)\ + return rc;\ + rc = dixLookupGC(&(pGC), stuff->gc, client, DixReadAccess);\ + if (rc != Success)\ + return rc;\ + if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\ return (BadMatch);\ client->lastDrawable = pDraw;\ client->lastDrawableID = drawID;\ diff --git a/xfixes/region.c b/xfixes/region.c index a004fc0ca..91e9fc9c1 100755 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -220,12 +220,15 @@ ProcXFixesCreateRegionFromGC (ClientPtr client) { RegionPtr pRegion, pClip; GCPtr pGC; + int rc; REQUEST (xXFixesCreateRegionFromGCReq); REQUEST_SIZE_MATCH (xXFixesCreateRegionFromGCReq); LEGAL_NEW_RESOURCE (stuff->region, client); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixReadAccess); + rc = dixLookupGC(&pGC, stuff->gc, client, DixReadAccess); + if (rc != Success) + return rc; switch (pGC->clientClipType) { case CT_PIXMAP: @@ -630,10 +633,14 @@ ProcXFixesSetGCClipRegion (ClientPtr client) GCPtr pGC; RegionPtr pRegion; XID vals[2]; + int rc; REQUEST(xXFixesSetGCClipRegionReq); - REQUEST_SIZE_MATCH(xXFixesSetGCClipRegionReq); - SECURITY_VERIFY_GC(pGC, stuff->gc, client, DixWriteAccess); + + rc = dixLookupGC(&pGC, stuff->gc, client, DixWriteAccess); + if (rc != Success) + return rc; + VERIFY_REGION_OR_NONE (pRegion, stuff->region, client, DixReadAccess); if (pRegion) From 9e32bf98bc9ab17a137664d01f59a8f426f7ff3b Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Thu, 14 Dec 2006 19:31:58 -0500 Subject: [PATCH 32/45] Remove now-unused macro definitions from dix.h. --- include/dix.h | 101 -------------------------------------------------- 1 file changed, 101 deletions(-) diff --git a/include/dix.h b/include/dix.h index 7dd321f22..baff43f54 100644 --- a/include/dix.h +++ b/include/dix.h @@ -81,107 +81,6 @@ SOFTWARE. return(BadIDChoice);\ } -/* XXX if you are using this macro, you are probably not generating Match - * errors where appropriate */ -#define LOOKUP_DRAWABLE(did, client)\ - ((client->lastDrawableID == did) ? \ - client->lastDrawable : (DrawablePtr)LookupDrawable(did, client)) - -#ifdef XACE - -#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\ - {\ - pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \ - RC_DRAWABLE, mode);\ - if (!pDraw) \ - {\ - client->errorValue = did; \ - return BadDrawable;\ - }\ - if (pDraw->type == UNDRAWABLE_WINDOW)\ - return BadMatch;\ - } - -#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\ - {\ - pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \ - RC_DRAWABLE, mode);\ - if (!pDraw) \ - {\ - client->errorValue = did; \ - return BadDrawable;\ - }\ - } - -#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\ - pGC = (GC *) SecurityLookupIDByType(client, rid, RT_GC, mode);\ - if (!pGC)\ - {\ - client->errorValue = rid;\ - return (BadGC);\ - } - -#define VERIFY_DRAWABLE(pDraw, did, client)\ - SECURITY_VERIFY_DRAWABLE(pDraw, did, client, DixUnknownAccess) - -#define VERIFY_GEOMETRABLE(pDraw, did, client)\ - SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, DixUnknownAccess) - -#define VERIFY_GC(pGC, rid, client)\ - SECURITY_VERIFY_GC(pGC, rid, client, DixUnknownAccess) - -#else /* not XACE */ - -#define VERIFY_DRAWABLE(pDraw, did, client)\ - if (client->lastDrawableID == did)\ - pDraw = client->lastDrawable;\ - else \ - {\ - pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\ - if (!pDraw) \ - {\ - client->errorValue = did; \ - return BadDrawable;\ - }\ - if (pDraw->type == UNDRAWABLE_WINDOW)\ - return BadMatch;\ - } - -#define VERIFY_GEOMETRABLE(pDraw, did, client)\ - if (client->lastDrawableID == did)\ - pDraw = client->lastDrawable;\ - else \ - {\ - pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\ - if (!pDraw) \ - {\ - client->errorValue = did; \ - return BadDrawable;\ - }\ - } - -#define VERIFY_GC(pGC, rid, client)\ - if (client->lastGCID == rid)\ - pGC = client->lastGC;\ - else\ - pGC = (GC *)LookupIDByType(rid, RT_GC);\ - if (!pGC)\ - {\ - client->errorValue = rid;\ - return (BadGC);\ - } - -#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\ - VERIFY_DRAWABLE(pDraw, did, client) - -#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\ - VERIFY_GEOMETRABLE(pDraw, did, client) - -#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\ - VERIFY_GC(pGC, rid, client) - -#endif /* XACE */ - /* * We think that most hardware implementations of DBE will want * LookupID*(dbe_back_buffer_id) to return the window structure that the From d742025f435f3eb7458cf8284d59300bc9a850aa Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 12 Dec 2006 20:16:49 -0800 Subject: [PATCH 33/45] RandR mode list needs both output and crtc modes. When an output no longer reports the current mode, it must still be included in the list advertised by the X server. Walk the crtcs to ensure it is included. (cherry picked from 78689d0d6630afcbcd3ce5394d12c2564a489f45 commit) --- randr/rrmode.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/randr/rrmode.c b/randr/rrmode.c index a0696e170..261e1b75f 100644 --- a/randr/rrmode.c +++ b/randr/rrmode.c @@ -108,12 +108,15 @@ RRModePtr * RRModesForScreen (ScreenPtr pScreen, int *num_ret) { rrScrPriv(pScreen); - int o; + int o, c; RRModePtr *screen_modes; int num_screen_modes = 0; screen_modes = xalloc ((num_modes ? num_modes : 1) * sizeof (RRModePtr)); + /* + * Add modes from all outputs + */ for (o = 0; o < pScrPriv->numOutputs; o++) { RROutputPtr output = pScrPriv->outputs[o]; @@ -129,6 +132,24 @@ RRModesForScreen (ScreenPtr pScreen, int *num_ret) screen_modes[num_screen_modes++] = mode; } } + /* + * Add modes from all crtcs. The goal is to + * make sure all available and active modes + * are visible to the client + */ + for (c = 0; c < pScrPriv->numCrtcs; c++) + { + RRCrtcPtr crtc = pScrPriv->crtcs[c]; + RRModePtr mode = crtc->mode; + int n; + + if (!mode) continue; + for (n = 0; n < num_screen_modes; n++) + if (screen_modes[n] == mode) + break; + if (n == num_screen_modes) + screen_modes[num_screen_modes++] = mode; + } *num_ret = num_screen_modes; return screen_modes; } From 628c7daeb12713d28e85e6b49fa037a7748dff83 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 12 Dec 2006 22:59:03 -0800 Subject: [PATCH 34/45] RandR: config time updates when hardware config changes. The config time in the RandR protocol reflects when the hardware state has changed. It was getting changed anytime the driver changed the usage of the hardware as well. (cherry picked from 98d18a6578130adb411ca4bcc776fcb7e07f189f commit) --- randr/randr.c | 6 +++++- randr/randrstr.h | 12 +++++++++--- randr/rrcrtc.c | 4 ++-- randr/rrinfo.c | 2 ++ randr/rroutput.c | 20 +++++++++++--------- 5 files changed, 29 insertions(+), 15 deletions(-) diff --git a/randr/randr.c b/randr/randr.c index 147df8c2c..1470035ca 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -415,7 +415,11 @@ RRTellChanged (ScreenPtr pScreen) if (pScrPriv->changed) { UpdateCurrentTime (); - pScrPriv->lastConfigTime = currentTime; + if (pScrPriv->configChanged) + { + pScrPriv->lastConfigTime = currentTime; + pScrPriv->configChanged = FALSE; + } pScrPriv->changed = FALSE; WalkTree (pScreen, TellChanged, (pointer) pScreen); for (i = 0; i < pScrPriv->numOutputs; i++) diff --git a/randr/randrstr.h b/randr/randrstr.h index 27ede9226..88f7588ae 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -216,11 +216,14 @@ typedef struct _rrScrPriv { TimeStamp lastSetTime; /* last changed by client */ TimeStamp lastConfigTime; /* possible configs changed */ RRCloseScreenProcPtr CloseScreen; + Bool changed; /* some config changed */ + Bool configChanged; /* configuration changed */ + Bool layoutChanged; /* screen layout changed */ + CARD16 minWidth, minHeight; CARD16 maxWidth, maxHeight; CARD16 width, height; /* last known screen size */ - Bool layoutChanged; /* screen layout changed */ int numOutputs; RROutputPtr *outputs; @@ -619,10 +622,13 @@ ProcRRDeleteOutputMode (ClientPtr client); /* rroutput.c */ /* - * Notify the output of some change + * Notify the output of some change. configChanged indicates whether + * any external configuration (mode list, clones, connected status) + * has changed, or whether the change was strictly internal + * (which crtc is in use) */ void -RROutputChanged (RROutputPtr output); +RROutputChanged (RROutputPtr output, Bool configChanged); /* * Create an output diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index d4c96f680..05863a129 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -136,7 +136,7 @@ RRCrtcNotify (RRCrtcPtr crtc, break; if (j == crtc->numOutputs) { - RROutputChanged (outputs[i]); + RROutputChanged (outputs[i], FALSE); RRCrtcChanged (crtc, FALSE); } } @@ -151,7 +151,7 @@ RRCrtcNotify (RRCrtcPtr crtc, break; if (i == numOutputs) { - RROutputChanged (crtc->outputs[j]); + RROutputChanged (crtc->outputs[j], FALSE); RRCrtcChanged (crtc, FALSE); } } diff --git a/randr/rrinfo.c b/randr/rrinfo.c index 244b089f3..85426f654 100644 --- a/randr/rrinfo.c +++ b/randr/rrinfo.c @@ -69,6 +69,7 @@ RROldModeAdd (RROutputPtr output, RRScreenSizePtr size, int refresh) output->modes = modes; output->changed = TRUE; pScrPriv->changed = TRUE; + pScrPriv->configChanged = TRUE; return mode; } @@ -205,6 +206,7 @@ RRGetInfo (ScreenPtr pScreen) rotations = 0; pScrPriv->changed = FALSE; + pScrPriv->configChanged = FALSE; if (!(*pScrPriv->rrGetInfo) (pScreen, &rotations)) return FALSE; diff --git a/randr/rroutput.c b/randr/rroutput.c index 33c4ba534..a66433015 100644 --- a/randr/rroutput.c +++ b/randr/rroutput.c @@ -28,7 +28,7 @@ RESTYPE RROutputType; * Notify the output of some change */ void -RROutputChanged (RROutputPtr output) +RROutputChanged (RROutputPtr output, Bool configChanged) { ScreenPtr pScreen = output->pScreen; @@ -37,6 +37,8 @@ RROutputChanged (RROutputPtr output) { rrScrPriv (pScreen); pScrPriv->changed = TRUE; + if (configChanged) + pScrPriv->configChanged = TRUE; } } @@ -106,7 +108,7 @@ RROutputAttachScreen (RROutputPtr output, ScreenPtr pScreen) output->pScreen = pScreen; pScrPriv->outputs = outputs; pScrPriv->outputs[pScrPriv->numOutputs++] = output; - RROutputChanged (output); + RROutputChanged (output, FALSE); return TRUE; } @@ -142,7 +144,7 @@ RROutputSetClones (RROutputPtr output, memcpy (newClones, clones, numClones * sizeof (RROutputPtr)); output->clones = newClones; output->numClones = numClones; - RROutputChanged (output); + RROutputChanged (output, TRUE); return TRUE; } @@ -186,7 +188,7 @@ RROutputSetModes (RROutputPtr output, output->modes = newModes; output->numModes = numModes; output->numPreferred = numPreferred; - RROutputChanged (output); + RROutputChanged (output, TRUE); return TRUE; } @@ -219,7 +221,7 @@ RROutputSetCrtcs (RROutputPtr output, memcpy (newCrtcs, crtcs, numCrtcs * sizeof (RRCrtcPtr)); output->crtcs = newCrtcs; output->numCrtcs = numCrtcs; - RROutputChanged (output); + RROutputChanged (output, TRUE); return TRUE; } @@ -229,7 +231,7 @@ RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc) if (output->crtc == crtc) return; output->crtc = crtc; - RROutputChanged (output); + RROutputChanged (output, FALSE); } Bool @@ -239,7 +241,7 @@ RROutputSetConnection (RROutputPtr output, if (output->connection == connection) return TRUE; output->connection = connection; - RROutputChanged (output); + RROutputChanged (output, TRUE); return TRUE; } @@ -251,7 +253,7 @@ RROutputSetSubpixelOrder (RROutputPtr output, return TRUE; output->subpixelOrder = subpixelOrder; - RROutputChanged (output); + RROutputChanged (output, FALSE); return TRUE; } @@ -264,7 +266,7 @@ RROutputSetPhysicalSize (RROutputPtr output, return TRUE; output->mmWidth = mmWidth; output->mmHeight = mmHeight; - RROutputChanged (output); + RROutputChanged (output, FALSE); return TRUE; } From 6c6901434ab469dd03b79fc98cd4a2b64d339305 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 13 Dec 2006 00:58:54 -0800 Subject: [PATCH 35/45] RandR 1.0 refresh rates unscrambled. SetScreenConfig uses RRCrtcSet right. RandR 1.0 refresh rates were scrambled when working with a 1.2 driver that returned sizes in a mixed order. SetScreenConfig was treating RRCrtcSet as returning an RandR status instead of a Bool. (cherry picked from 6dc711833d7387372012fdff1ce1df3aefa2d234 commit) --- randr/rrscreen.c | 113 +++++++++++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 44 deletions(-) diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 3b9263bc4..37b6a57d9 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -481,62 +481,81 @@ RR10GetData (ScreenPtr pScreen, RROutputPtr output) RR10DataPtr data; RRScreenSizePtr size; int nmode = output->numModes; - int i, j, k; + int o, os, l, r; RRScreenRatePtr refresh; CARD16 vRefresh; RRModePtr mode; + Bool *used; /* Make sure there is plenty of space for any combination */ data = malloc (sizeof (RR10DataRec) + sizeof (RRScreenSize) * nmode + - sizeof (RRScreenRate) * nmode); + sizeof (RRScreenRate) * nmode + + sizeof (Bool) * nmode); if (!data) return NULL; size = (RRScreenSizePtr) (data + 1); refresh = (RRScreenRatePtr) (size + nmode); + used = (Bool *) (refresh + nmode); + memset (used, '\0', sizeof (Bool) * nmode); data->sizes = size; data->nsize = 0; data->nrefresh = 0; data->size = 0; data->refresh = 0; - for (i = 0; i < output->numModes; i++) + + /* + * find modes not yet listed + */ + for (o = 0; o < output->numModes; o++) { - mode = output->modes[i]; - for (j = 0; j < data->nsize; j++) - if (mode->mode.width == size[j].width && - mode->mode.height == size[j].height) - break; - if (j == data->nsize) + if (used[o]) continue; + + mode = output->modes[o]; + + l = data->nsize; + size[l].id = data->nsize; + size[l].width = mode->mode.width; + size[l].height = mode->mode.height; + if (output->mmWidth && output->mmHeight) { + size[l].mmWidth = output->mmWidth; + size[l].mmHeight = output->mmHeight; + } else { + size[l].mmWidth = pScreen->mmWidth; + size[l].mmHeight = pScreen->mmHeight; + } + size[l].nRates = 0; + size[l].pRates = &refresh[data->nrefresh]; + data->nsize++; + + /* + * Find all modes with matching size + */ + for (os = o; os < output->numModes; os++) { - size[j].id = j; - size[j].width = mode->mode.width; - size[j].height = mode->mode.height; - if (output->mmWidth && output->mmHeight) { - size[j].mmWidth = output->mmWidth; - size[j].mmHeight = output->mmHeight; - } else { - size[j].mmWidth = pScreen->mmWidth; - size[j].mmHeight = pScreen->mmHeight; + mode = output->modes[os]; + if (mode->mode.width == size[l].width && + mode->mode.height == size[l].height) + { + vRefresh = RRVerticalRefresh (&mode->mode); + used[os] = TRUE; + + for (r = 0; r < size[l].nRates; r++) + if (vRefresh == size[l].pRates[r].rate) + break; + if (r == size[l].nRates) + { + size[l].pRates[r].rate = vRefresh; + size[l].pRates[r].mode = mode; + size[l].nRates++; + data->nrefresh++; + } + if (mode == output->crtc->mode) + { + data->size = l; + data->refresh = vRefresh; + } } - size[j].nRates = 0; - size[j].pRates = &refresh[data->nrefresh]; - data->nsize++; - } - vRefresh = RRVerticalRefresh (&mode->mode); - for (k = 0; k < size[j].nRates; k++) - if (vRefresh == size[j].pRates[k].rate) - break; - if (k == size[j].nRates) - { - size[j].pRates[k].rate = vRefresh; - size[j].pRates[k].mode = mode; - size[j].nRates++; - data->nrefresh++; - } - if (mode == output->crtc->mode) - { - data->size = j; - data->refresh = vRefresh; } } return data; @@ -865,22 +884,28 @@ ProcRRSetScreenConfig (ClientPtr client) for (c = 0; c < pScrPriv->numCrtcs; c++) { - rep.status = RRCrtcSet (pScrPriv->crtcs[c], NULL, 0, 0, RR_Rotate_0, - 0, NULL); - if (rep.status != Success) + if (!RRCrtcSet (pScrPriv->crtcs[c], NULL, 0, 0, RR_Rotate_0, + 0, NULL)) + { + rep.status = RRSetConfigFailed; + /* XXX recover from failure */ goto sendReply; + } } if (!RRScreenSizeSet (pScreen, mode->mode.width, mode->mode.height, pScreen->mmWidth, pScreen->mmHeight)) { rep.status = RRSetConfigFailed; + /* XXX recover from failure */ goto sendReply; } } - - rep.status = RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, - 1, &output); - + + if (!RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation, 1, &output)) + rep.status = RRSetConfigFailed; + else + rep.status = RRSetConfigSuccess; + /* * XXX Configure other crtcs to mirror as much as possible */ From 670bbb87310503fcc17203cecfa6f4f2f5db51d2 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 13 Dec 2006 01:21:32 -0800 Subject: [PATCH 36/45] RandR 1.2 rotation code must adjust width/height. Mode lines reflect the monitor mode, not the projected size into the frame buffer. Flip width/height around so that the dimensions are oriented correctly. (cherry picked from 612a8e61803da8db0e305cbb093696b8e4284572 commit) --- randr/rrcrtc.c | 12 ++++++++++-- randr/rrscreen.c | 25 +++++++++++++++++++------ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 05863a129..076742077 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -698,7 +698,15 @@ ProcRRSetCrtcConfig (ClientPtr client) */ if (pScrPriv->rrScreenSetSize) { - if (stuff->x + mode->mode.width > pScreen->width) + int source_width = mode->mode.width; + int source_height = mode->mode.height; + + if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270) + { + source_width = mode->mode.height; + source_height = mode->mode.width; + } + if (stuff->x + source_width > pScreen->width) { client->errorValue = stuff->x; if (outputs) @@ -706,7 +714,7 @@ ProcRRSetCrtcConfig (ClientPtr client) return BadValue; } - if (stuff->y + mode->mode.height > pScreen->height) + if (stuff->y + source_height > pScreen->height) { client->errorValue = stuff->y; if (outputs) diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 37b6a57d9..f1d8fc5d9 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -268,7 +268,6 @@ ProcRRSetScreenSize (ClientPtr client) WindowPtr pWin; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; - RRCrtcPtr crtc; int i; REQUEST_SIZE_MATCH(xRRSetScreenSizeReq); @@ -291,12 +290,26 @@ ProcRRSetScreenSize (ClientPtr client) client->errorValue = stuff->height; return BadValue; } - for (i = 0; i < pScrPriv->numCrtcs; i++) { - crtc = pScrPriv->crtcs[i]; - if (crtc->mode && - (crtc->x + crtc->mode->mode.width > stuff->width || - crtc->y + crtc->mode->mode.height > stuff->height)) + for (i = 0; i < pScrPriv->numCrtcs; i++) + { + RRCrtcPtr crtc = pScrPriv->crtcs[i]; + RRModePtr mode = crtc->mode; + if (mode) + { + int source_width = mode->mode.width; + int source_height = mode->mode.height; + Rotation rotation = crtc->rotation; + + if (rotation == RR_Rotate_90 || rotation == RR_Rotate_270) + { + source_width = mode->mode.height; + source_height = mode->mode.width; + } + + if (crtc->x + source_width > stuff->width || + crtc->y + source_height > stuff->height) return BadMatch; + } } if (stuff->widthInMillimeters == 0 || stuff->heightInMillimeters == 0) { From 04c721854fbf1bd6379c165a53fab2bdc09961c0 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 14:11:40 -0500 Subject: [PATCH 37/45] Convert callers of LookupWindow() to dixLookupWindow(). --- Xext/appgroup.c | 8 ++++-- Xext/mbuf.c | 31 ++++++++++---------- Xext/panoramiX.c | 27 ++++++++++-------- Xext/shape.c | 52 ++++++++++++++++++---------------- Xext/xtest.c | 19 ++++++------- Xext/xvdisp.c | 12 +++----- Xi/chgprop.c | 9 +++--- Xi/exevents.c | 22 +++++++------- Xi/getprop.c | 9 +++--- Xi/getselev.c | 8 +++--- Xi/selectev.c | 8 ++---- Xi/ungrdevb.c | 7 +++-- Xi/ungrdevk.c | 7 +++-- composite/compwindow.c | 6 ++-- hw/darwin/quartz/pseudoramiX.c | 27 ++++++++++-------- randr/rrxinerama.c | 21 ++++++++------ 16 files changed, 141 insertions(+), 132 deletions(-) diff --git a/Xext/appgroup.c b/Xext/appgroup.c index 4f3000569..134b172f9 100644 --- a/Xext/appgroup.c +++ b/Xext/appgroup.c @@ -355,13 +355,15 @@ int AttrValidate( AppGroupPtr pAppGrp) { WindowPtr pWin; - int idepth, ivids, found; + int idepth, ivids, found, rc; ScreenPtr pScreen; DepthPtr pDepth; ColormapPtr pColormap; - pWin = LookupWindow (pAppGrp->default_root, client); - /* XXX check that pWin is not NULL */ + rc = dixLookupWindow(&pWin, pAppGrp->default_root, client, + DixUnknownAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; if (WindowTable[pScreen->myNum]->drawable.id != pAppGrp->default_root) return BadWindow; diff --git a/Xext/mbuf.c b/Xext/mbuf.c index e0361dda4..43e2cc107 100644 --- a/Xext/mbuf.c +++ b/Xext/mbuf.c @@ -448,16 +448,15 @@ ProcCreateImageBuffers (client) register int n; WindowPtr pWin; XID *ids; - int len, nbuf; - int i; - int err; + int len, nbuf, i, err, rc; REQUEST_AT_LEAST_SIZE (xMbufCreateImageBuffersReq); len = stuff->length - (sizeof(xMbufCreateImageBuffersReq) >> 2); if (len == 0) return BadLength; - if (!(pWin = LookupWindow (stuff->window, client))) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; if (pWin->drawable.class == InputOnly) return BadMatch; switch (stuff->updateAction) @@ -584,10 +583,12 @@ ProcDestroyImageBuffers (client) { REQUEST (xMbufDestroyImageBuffersReq); WindowPtr pWin; + int rc; REQUEST_SIZE_MATCH (xMbufDestroyImageBuffersReq); - if (!(pWin = LookupWindow (stuff->window, client))) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; DestroyImageBuffers (pWin); return Success; } @@ -599,16 +600,16 @@ ProcSetMBufferAttributes (client) REQUEST (xMbufSetMBufferAttributesReq); WindowPtr pWin; MultibuffersPtr pMultibuffers; - int len; + int len, rc; Mask vmask; Mask index2; CARD32 updateHint; XID *vlist; REQUEST_AT_LEAST_SIZE (xMbufSetMBufferAttributesReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; pMultibuffers = (MultibuffersPtr)LookupIDByType (pWin->drawable.id, MultibuffersResType); if (!pMultibuffers) return BadMatch; @@ -655,12 +656,12 @@ ProcGetMBufferAttributes (client) MultibuffersPtr pMultibuffers; XID *ids; xMbufGetMBufferAttributesReply rep; - int i, n; + int i, n, rc; REQUEST_SIZE_MATCH (xMbufGetMBufferAttributesReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; pMultibuffers = (MultibuffersPtr)LookupIDByType (pWin->drawable.id, MultibuffersResType); if (!pMultibuffers) return BadAccess; diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c index 6b8b5f2f7..85f591356 100644 --- a/Xext/panoramiX.c +++ b/Xext/panoramiX.c @@ -958,12 +958,13 @@ ProcPanoramiXGetState(ClientPtr client) REQUEST(xPanoramiXGetStateReq); WindowPtr pWin; xPanoramiXGetStateReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetStateReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -984,12 +985,13 @@ ProcPanoramiXGetScreenCount(ClientPtr client) REQUEST(xPanoramiXGetScreenCountReq); WindowPtr pWin; xPanoramiXGetScreenCountReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -1009,12 +1011,13 @@ ProcPanoramiXGetScreenSize(ClientPtr client) REQUEST(xPanoramiXGetScreenSizeReq); WindowPtr pWin; xPanoramiXGetScreenSizeReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; diff --git a/Xext/shape.c b/Xext/shape.c index 4a798da7c..58e3a69b3 100644 --- a/Xext/shape.c +++ b/Xext/shape.c @@ -316,16 +316,16 @@ ProcShapeRectangles (client) ScreenPtr pScreen; REQUEST(xShapeRectanglesReq); xRectangle *prects; - int nrects, ctype; + int nrects, ctype, rc; RegionPtr srcRgn; RegionPtr *destRgn; CreateDftPtr createDefault; REQUEST_AT_LEAST_SIZE (xShapeRectanglesReq); UpdateCurrentTime(); - pWin = LookupWindow (stuff->dest, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->dest, client, DixUnknownAccess); + if (rc != Success) + return rc; switch (stuff->destKind) { case ShapeBounding: createDefault = CreateBoundingShape; @@ -526,12 +526,13 @@ ProcShapeCombine (client) CreateDftPtr createDefault; CreateDftPtr createSrc; RegionPtr tmp; + int rc; REQUEST_SIZE_MATCH (xShapeCombineReq); UpdateCurrentTime(); - pDestWin = LookupWindow (stuff->dest, client); - if (!pDestWin) - return BadWindow; + rc = dixLookupWindow(&pDestWin, stuff->dest, client, DixUnknownAccess); + if (rc != Success) + return rc; if (!pDestWin->optional) MakeWindowOptional (pDestWin); switch (stuff->destKind) { @@ -550,9 +551,9 @@ ProcShapeCombine (client) } pScreen = pDestWin->drawable.pScreen; - pSrcWin = LookupWindow (stuff->src, client); - if (!pSrcWin) - return BadWindow; + rc = dixLookupWindow(&pSrcWin, stuff->src, client, DixUnknownAccess); + if (rc != Success) + return rc; switch (stuff->srcKind) { case ShapeBounding: srcRgn = wBoundingShape (pSrcWin); @@ -645,12 +646,13 @@ ProcShapeOffset (client) ScreenPtr pScreen; REQUEST(xShapeOffsetReq); RegionPtr srcRgn; + int rc; REQUEST_SIZE_MATCH (xShapeOffsetReq); UpdateCurrentTime(); - pWin = LookupWindow (stuff->dest, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->dest, client, DixUnknownAccess); + if (rc != Success) + return rc; switch (stuff->destKind) { case ShapeBounding: srcRgn = wBoundingShape (pWin); @@ -709,13 +711,13 @@ ProcShapeQueryExtents (client) WindowPtr pWin; xShapeQueryExtentsReply rep; BoxRec extents, *pExtents; - register int n; + register int n, rc; RegionPtr region; REQUEST_SIZE_MATCH (xShapeQueryExtentsReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -990,14 +992,14 @@ ProcShapeInputSelected (client) REQUEST(xShapeInputSelectedReq); WindowPtr pWin; ShapeEventPtr pShapeEvent, *pHead; - int enabled; + int enabled, rc; xShapeInputSelectedReply rep; register int n; REQUEST_SIZE_MATCH (xShapeInputSelectedReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; pHead = (ShapeEventPtr *) SecurityLookupIDByType(client, pWin->drawable.id, EventType, DixReadAccess); enabled = xFalse; @@ -1032,14 +1034,14 @@ ProcShapeGetRectangles (client) WindowPtr pWin; xShapeGetRectanglesReply rep; xRectangle *rects; - int nrects, i; + int nrects, i, rc; RegionPtr region; register int n; REQUEST_SIZE_MATCH(xShapeGetRectanglesReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; switch (stuff->kind) { case ShapeBounding: region = wBoundingShape(pWin); diff --git a/Xext/xtest.c b/Xext/xtest.c index 83f8b8cc6..c9b511e69 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -139,12 +139,12 @@ ProcXTestCompareCursor(client) xXTestCompareCursorReply rep; WindowPtr pWin; CursorPtr pCursor; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xXTestCompareCursorReq); - pWin = (WindowPtr)LookupWindow(stuff->window, client); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; if (stuff->cursor == None) pCursor = NullCursor; else if (stuff->cursor == XTestCurrentCursor) @@ -173,12 +173,10 @@ ProcXTestFakeInput(client) register ClientPtr client; { REQUEST(xXTestFakeInputReq); - int nev; - int n; + int nev, n, type, rc; xEvent *ev; DeviceIntPtr dev = NULL; WindowPtr root; - int type; #ifdef XINPUT Bool extension = FALSE; deviceValuator *dv = NULL; @@ -367,9 +365,10 @@ ProcXTestFakeInput(client) root = GetCurrentRootWindow(); else { - root = LookupWindow(ev->u.keyButtonPointer.root, client); - if (!root) - return BadWindow; + rc = dixLookupWindow(&root, ev->u.keyButtonPointer.root, client, + DixUnknownAccess); + if (rc != Success) + return rc; if (root->parent) { client->errorValue = ev->u.keyButtonPointer.root; diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c index 2afb7c687..21d00aa7f 100644 --- a/Xext/xvdisp.c +++ b/Xext/xvdisp.c @@ -373,10 +373,8 @@ ProcXvQueryAdaptors(ClientPtr client) xvFormat format; xvAdaptorInfo ainfo; xvQueryAdaptorsReply rep; - int totalSize; - int na; + int totalSize, na, nf, rc; XvAdaptorPtr pa; - int nf; XvFormatPtr pf; WindowPtr pWin; ScreenPtr pScreen; @@ -385,11 +383,9 @@ ProcXvQueryAdaptors(ClientPtr client) REQUEST(xvQueryAdaptorsReq); REQUEST_SIZE_MATCH(xvQueryAdaptorsReq); - if(!(pWin = (WindowPtr)LookupWindow(stuff->window, client) )) - { - client->errorValue = stuff->window; - return (BadWindow); - } + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pxvs = (XvScreenPtr)pScreen->devPrivates[XvScreenIndex].ptr; diff --git a/Xi/chgprop.c b/Xi/chgprop.c index 52c38838d..bab4597b8 100644 --- a/Xi/chgprop.c +++ b/Xi/chgprop.c @@ -106,7 +106,7 @@ SProcXChangeDeviceDontPropagateList(register ClientPtr client) int ProcXChangeDeviceDontPropagateList(register ClientPtr client) { - int i; + int i, rc; WindowPtr pWin; struct tmask tmp[EMASKSIZE]; OtherInputMasks *others; @@ -121,11 +121,10 @@ ProcXChangeDeviceDontPropagateList(register ClientPtr client) return Success; } - pWin = (WindowPtr) LookupWindow(stuff->window, client); - if (!pWin) { - client->errorValue = stuff->window; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) { SendErrorToClient(client, IReqCode, X_ChangeDeviceDontPropagateList, 0, - BadWindow); + rc); return Success; } diff --git a/Xi/exevents.c b/Xi/exevents.c index 92a5f0599..b7645f443 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -505,6 +505,7 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, WindowPtr pWin, confineTo; CursorPtr cursor; GrabPtr grab; + int rc; if ((this_device_mode != GrabModeSync) && (this_device_mode != GrabModeAsync)) { @@ -524,15 +525,15 @@ GrabButton(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, client->errorValue = ownerEvents; return BadValue; } - pWin = LookupWindow(grabWindow, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess); + if (rc != Success) + return rc; if (rconfineTo == None) confineTo = NullWindow; else { - confineTo = LookupWindow(rconfineTo, client); - if (!confineTo) - return BadWindow; + rc = dixLookupWindow(&confineTo, rconfineTo, client, DixUnknownAccess); + if (rc != Success) + return rc; } if (rcursor == None) cursor = NullCursor; @@ -562,6 +563,7 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, WindowPtr pWin; GrabPtr grab; KeyClassPtr k = dev->key; + int rc; if (k == NULL) return BadMatch; @@ -588,9 +590,9 @@ GrabKey(ClientPtr client, DeviceIntPtr dev, BYTE this_device_mode, client->errorValue = ownerEvents; return BadValue; } - pWin = LookupWindow(grabWindow, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, grabWindow, client, DixUnknownAccess); + if (rc != Success) + return rc; grab = CreateGrab(client->index, dev, pWin, mask, ownerEvents, this_device_mode, other_devices_mode, @@ -810,7 +812,7 @@ SendEvent(ClientPtr client, DeviceIntPtr d, Window dest, Bool propagate, } else effectiveFocus = pWin = inputFocus; } else - pWin = LookupWindow(dest, client); + dixLookupWindow(&pWin, dest, client, DixUnknownAccess); if (!pWin) return BadWindow; if ((propagate != xFalse) && (propagate != xTrue)) { diff --git a/Xi/getprop.c b/Xi/getprop.c index 530841032..058c59514 100644 --- a/Xi/getprop.c +++ b/Xi/getprop.c @@ -100,7 +100,7 @@ int ProcXGetDeviceDontPropagateList(register ClientPtr client) { CARD16 count = 0; - int i; + int i, rc; XEventClass *buf = NULL, *tbuf; WindowPtr pWin; xGetDeviceDontPropagateListReply rep; @@ -115,11 +115,10 @@ ProcXGetDeviceDontPropagateList(register ClientPtr client) rep.length = 0; rep.count = 0; - pWin = (WindowPtr) LookupWindow(stuff->window, client); - if (!pWin) { - client->errorValue = stuff->window; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) { SendErrorToClient(client, IReqCode, X_GetDeviceDontPropagateList, 0, - BadWindow); + rc); return Success; } diff --git a/Xi/getselev.c b/Xi/getselev.c index a84c33d23..533c66cd7 100644 --- a/Xi/getselev.c +++ b/Xi/getselev.c @@ -98,8 +98,7 @@ SProcXGetSelectedExtensionEvents(register ClientPtr client) int ProcXGetSelectedExtensionEvents(register ClientPtr client) { - int i; - int total_length = 0; + int i, rc, total_length = 0; xGetSelectedExtensionEventsReply rep; WindowPtr pWin; XEventClass *buf = NULL; @@ -118,9 +117,10 @@ ProcXGetSelectedExtensionEvents(register ClientPtr client) rep.this_client_count = 0; rep.all_clients_count = 0; - if (!(pWin = LookupWindow(stuff->window, client))) { + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) { SendErrorToClient(client, IReqCode, X_GetSelectedExtensionEvents, 0, - BadWindow); + rc); return Success; } diff --git a/Xi/selectev.c b/Xi/selectev.c index 7d3ef9d48..8c893ca1e 100644 --- a/Xi/selectev.c +++ b/Xi/selectev.c @@ -170,11 +170,9 @@ ProcXSelectExtensionEvent(register ClientPtr client) return Success; } - pWin = (WindowPtr) LookupWindow(stuff->window, client); - if (!pWin) { - client->errorValue = stuff->window; - SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0, - BadWindow); + ret = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (ret != Success) { + SendErrorToClient(client, IReqCode, X_SelectExtensionEvent, 0, ret); return Success; } diff --git a/Xi/ungrdevb.c b/Xi/ungrdevb.c index 64bb213f5..8db9307ce 100644 --- a/Xi/ungrdevb.c +++ b/Xi/ungrdevb.c @@ -105,6 +105,7 @@ ProcXUngrabDeviceButton(ClientPtr client) DeviceIntPtr mdev; WindowPtr pWin; GrabRec temporaryGrab; + int rc; REQUEST(xUngrabDeviceButtonReq); REQUEST_SIZE_MATCH(xUngrabDeviceButtonReq); @@ -134,9 +135,9 @@ ProcXUngrabDeviceButton(ClientPtr client) } else mdev = (DeviceIntPtr) LookupKeyboardDevice(); - pWin = LookupWindow(stuff->grabWindow, client); - if (!pWin) { - SendErrorToClient(client, IReqCode, X_UngrabDeviceButton, 0, BadWindow); + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixUnknownAccess); + if (rc != Success) { + SendErrorToClient(client, IReqCode, X_UngrabDeviceButton, 0, rc); return Success; } diff --git a/Xi/ungrdevk.c b/Xi/ungrdevk.c index 0a6b3b619..ebb83bce7 100644 --- a/Xi/ungrdevk.c +++ b/Xi/ungrdevk.c @@ -105,6 +105,7 @@ ProcXUngrabDeviceKey(ClientPtr client) DeviceIntPtr mdev; WindowPtr pWin; GrabRec temporaryGrab; + int rc; REQUEST(xUngrabDeviceKeyReq); REQUEST_SIZE_MATCH(xUngrabDeviceKeyReq); @@ -133,9 +134,9 @@ ProcXUngrabDeviceKey(ClientPtr client) } else mdev = (DeviceIntPtr) LookupKeyboardDevice(); - pWin = LookupWindow(stuff->grabWindow, client); - if (!pWin) { - SendErrorToClient(client, IReqCode, X_UngrabDeviceKey, 0, BadWindow); + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixUnknownAccess); + if (rc != Success) { + SendErrorToClient(client, IReqCode, X_UngrabDeviceKey, 0, rc); return Success; } if (((stuff->key > dev->key->curKeySyms.maxKeyCode) || diff --git a/composite/compwindow.c b/composite/compwindow.c index 2c86cdd95..fed642ec6 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -93,10 +93,10 @@ typedef struct _compPixmapVisit { static Bool compRepaintBorder (ClientPtr pClient, pointer closure) { - WindowPtr pWindow = LookupWindow ((XID) closure, pClient); + WindowPtr pWindow; + int rc = dixLookupWindow(&pWindow, (XID)closure, pClient,DixUnknownAccess); - if (pWindow) - { + if (rc == Success) { RegionRec exposed; REGION_NULL(pScreen, &exposed); diff --git a/hw/darwin/quartz/pseudoramiX.c b/hw/darwin/quartz/pseudoramiX.c index ab57827d3..a003daf43 100644 --- a/hw/darwin/quartz/pseudoramiX.c +++ b/hw/darwin/quartz/pseudoramiX.c @@ -170,12 +170,13 @@ static int ProcPseudoramiXGetState(ClientPtr client) REQUEST(xPanoramiXGetStateReq); WindowPtr pWin; xPanoramiXGetStateReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetStateReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -196,12 +197,13 @@ static int ProcPseudoramiXGetScreenCount(ClientPtr client) REQUEST(xPanoramiXGetScreenCountReq); WindowPtr pWin; xPanoramiXGetScreenCountReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -222,12 +224,13 @@ static int ProcPseudoramiXGetScreenSize(ClientPtr client) REQUEST(xPanoramiXGetScreenSizeReq); WindowPtr pWin; xPanoramiXGetScreenSizeReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq); - pWin = LookupWindow (stuff->window, client); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; + rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c index 771ed0976..8b951455c 100644 --- a/randr/rrxinerama.c +++ b/randr/rrxinerama.c @@ -116,14 +116,15 @@ ProcRRXineramaGetState(ClientPtr client) REQUEST(xPanoramiXGetStateReq); WindowPtr pWin; xPanoramiXGetStateReply rep; - register int n; + register int n, rc; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; Bool active = FALSE; REQUEST_SIZE_MATCH(xPanoramiXGetStateReq); - pWin = LookupWindow(stuff->window, client); - if(!pWin) return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if(rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pScrPriv = rrGetScrPriv(pScreen); @@ -180,11 +181,12 @@ ProcRRXineramaGetScreenCount(ClientPtr client) REQUEST(xPanoramiXGetScreenCountReq); WindowPtr pWin; xPanoramiXGetScreenCountReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenCountReq); - pWin = LookupWindow(stuff->window, client); - if(!pWin) return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; rep.type = X_Reply; rep.length = 0; @@ -206,11 +208,12 @@ ProcRRXineramaGetScreenSize(ClientPtr client) WindowPtr pWin, pRoot; ScreenPtr pScreen; xPanoramiXGetScreenSizeReply rep; - register int n; + register int n, rc; REQUEST_SIZE_MATCH(xPanoramiXGetScreenSizeReq); - pWin = LookupWindow (stuff->window, client); - if(!pWin) return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pRoot = WindowTable[pScreen->myNum]; From 25d5e0a629f82d95bd71daf9a920a70e095b5188 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 15:50:46 -0500 Subject: [PATCH 38/45] Convert callers of SecurityLookupWindow() to dixLookupWindow(). --- Xext/panoramiXprocs.c | 18 ++- Xext/shape.c | 14 ++- Xext/xprint.c | 7 +- dbe/dbe.c | 16 ++- dix/devices.c | 8 +- dix/dispatch.c | 214 ++++++++++++++++----------------- dix/events.c | 117 +++++++++--------- dix/property.c | 45 +++---- hw/darwin/quartz/applewm.c | 12 +- hw/dmx/dmx.c | 14 +-- hw/dmx/glxProxy/glxcmds.c | 23 ++-- hw/xwin/winclipboardwrappers.c | 8 +- hw/xwin/winwindowswm.c | 19 ++- randr/rrdispatch.c | 7 +- randr/rrscreen.c | 40 +++--- xfixes/cursor.c | 8 +- xfixes/saveset.c | 7 +- xfixes/select.c | 8 +- 18 files changed, 273 insertions(+), 312 deletions(-) diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c index a193c4188..1c53a1e1a 100644 --- a/Xext/panoramiXprocs.c +++ b/Xext/panoramiXprocs.c @@ -577,19 +577,17 @@ int PanoramiXTranslateCoords(ClientPtr client) { INT16 x, y; REQUEST(xTranslateCoordsReq); - - register WindowPtr pWin, pDst; + int rc; + WindowPtr pWin, pDst; xTranslateCoordsReply rep; REQUEST_SIZE_MATCH(xTranslateCoordsReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client, - DixReadAccess); - if (!pWin) - return(BadWindow); - pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client, - DixReadAccess); - if (!pDst) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixReadAccess); + if (rc != Success) + return rc; + rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixReadAccess); + if (rc != Success) + return rc; rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; diff --git a/Xext/shape.c b/Xext/shape.c index 58e3a69b3..928eeee31 100644 --- a/Xext/shape.c +++ b/Xext/shape.c @@ -419,12 +419,13 @@ ProcShapeMask (client) RegionPtr *destRgn; PixmapPtr pPixmap; CreateDftPtr createDefault; + int rc; REQUEST_SIZE_MATCH (xShapeMaskReq); UpdateCurrentTime(); - pWin = SecurityLookupWindow (stuff->dest, client, DixWriteAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->dest, client, DixWriteAccess); + if (rc != Success) + return rc; switch (stuff->destKind) { case ShapeBounding: createDefault = CreateBoundingShape; @@ -822,11 +823,12 @@ ProcShapeSelectInput (client) WindowPtr pWin; ShapeEventPtr pShapeEvent, pNewShapeEvent, *pHead; XID clientResource; + int rc; REQUEST_SIZE_MATCH (xShapeSelectInputReq); - pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; pHead = (ShapeEventPtr *)SecurityLookupIDByType(client, pWin->drawable.id, EventType, DixWriteAccess); switch (stuff->enable) { diff --git a/Xext/xprint.c b/Xext/xprint.c index 669ad277d..d8fc51713 100644 --- a/Xext/xprint.c +++ b/Xext/xprint.c @@ -1852,9 +1852,10 @@ ProcXpStartPage(ClientPtr client) if(pContext->state & PAGE_STARTED) return XpErrorBase+XPBadSequence; - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin || pWin->drawable.pScreen->myNum != pContext->screenNum) + result = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (result != Success) + return result; + if (pWin->drawable.pScreen->myNum != pContext->screenNum) return BadWindow; if((c = (XpStPagePtr)xalloc(sizeof(XpStPageRec))) == (XpStPagePtr)NULL) diff --git a/dbe/dbe.c b/dbe/dbe.c index 649143cf2..69ddf4f1c 100644 --- a/dbe/dbe.c +++ b/dbe/dbe.c @@ -405,11 +405,9 @@ ProcDbeAllocateBackBufferName(ClientPtr client) REQUEST_SIZE_MATCH(xDbeAllocateBackBufferNameReq); /* The window must be valid. */ - if (!(pWin = SecurityLookupWindow(stuff->window, client, - DixWriteAccess))) - { - return(BadWindow); - } + status = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (status != Success) + return status; /* The window must be InputOutput. */ if (pWin->drawable.class != InputOutput) @@ -729,11 +727,11 @@ ProcDbeSwapBuffers(ClientPtr client) /* Check all windows to swap. */ /* Each window must be a valid window - BadWindow. */ - if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client, - DixWriteAccess))) - { + error = dixLookupWindow(&pWin, dbeSwapInfo[i].window, client, + DixWriteAccess); + if (error != Success) { DEALLOCATE_LOCAL(swapInfo); - return(BadWindow); + return error; } /* Each window must be double-buffered - BadMatch. */ diff --git a/dix/devices.c b/dix/devices.c index e6a504954..9f4218414 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1840,16 +1840,16 @@ ProcGetMotionEvents(ClientPtr client) WindowPtr pWin; xTimecoord * coords = (xTimecoord *) NULL; xGetMotionEventsReply rep; - int i, count, xmin, xmax, ymin, ymax; + int i, count, xmin, xmax, ymin, ymax, rc; unsigned long nEvents; DeviceIntPtr mouse = inputInfo.pointer; TimeStamp start, stop; REQUEST(xGetMotionEventsReq); REQUEST_SIZE_MATCH(xGetMotionEventsReq); - pWin = SecurityLookupWindow(stuff->window, client, TRUE); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixUnknownAccess); + if (rc != Success) + return rc; if (mouse->valuator->motionHintWindow) MaybeStopHint(mouse, client); rep.type = X_Reply; diff --git a/dix/dispatch.c b/dix/dispatch.c index 0421886a0..3060a4c39 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -554,17 +554,16 @@ ProcBadRequest(ClientPtr client) int ProcCreateWindow(ClientPtr client) { - register WindowPtr pParent, pWin; + WindowPtr pParent, pWin; REQUEST(xCreateWindowReq); - int result; - int len; + int result, len, rc; REQUEST_AT_LEAST_SIZE(xCreateWindowReq); LEGAL_NEW_RESOURCE(stuff->wid, client); - if (!(pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client, - DixWriteAccess))) - return BadWindow; + rc = dixLookupWindow(&pParent, stuff->parent, client, DixWriteAccess); + if (rc != Success) + return rc; len = client->req_len - (sizeof(xCreateWindowReq) >> 2); if (Ones(stuff->mask) != len) return BadLength; @@ -597,16 +596,15 @@ ProcCreateWindow(ClientPtr client) int ProcChangeWindowAttributes(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xChangeWindowAttributesReq); register int result; - int len; + int len, rc; REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; len = client->req_len - (sizeof(xChangeWindowAttributesReq) >> 2); if (len != Ones(stuff->valueMask)) return BadLength; @@ -623,15 +621,15 @@ ProcChangeWindowAttributes(register ClientPtr client) int ProcGetWindowAttributes(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); xGetWindowAttributesReply wa; + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; GetWindowAttributes(pWin, client, &wa); WriteReplyToClient(client, sizeof(xGetWindowAttributesReply), &wa); return(client->noClientException); @@ -640,14 +638,14 @@ ProcGetWindowAttributes(register ClientPtr client) int ProcDestroyWindow(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixDestroyAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess); + if (rc != Success) + return rc; if (pWin->parent) FreeResource(stuff->id, RT_NONE); return(client->noClientException); @@ -656,14 +654,14 @@ ProcDestroyWindow(register ClientPtr client) int ProcDestroySubwindows(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixDestroyAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixDestroyAccess); + if (rc != Success) + return rc; DestroySubwindows(pWin, client); return(client->noClientException); } @@ -671,15 +669,14 @@ ProcDestroySubwindows(register ClientPtr client) int ProcChangeSaveSet(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xChangeSaveSetReq); - register int result; + register int result, rc; REQUEST_SIZE_MATCH(xChangeSaveSetReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id))) return BadMatch; if ((stuff->mode == SetModeInsert) || (stuff->mode == SetModeDelete)) @@ -700,19 +697,17 @@ ProcChangeSaveSet(register ClientPtr client) int ProcReparentWindow(register ClientPtr client) { - register WindowPtr pWin, pParent; + WindowPtr pWin, pParent; REQUEST(xReparentWindowReq); - register int result; + register int result, rc; REQUEST_SIZE_MATCH(xReparentWindowReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); - pParent = (WindowPtr)SecurityLookupWindow(stuff->parent, client, - DixWriteAccess); - if (!pParent) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; + rc = dixLookupWindow(&pParent, stuff->parent, client, DixWriteAccess); + if (rc != Success) + return rc; if (SAME_SCREENS(pWin->drawable, pParent->drawable)) { if ((pWin->backgroundState == ParentRelative) && @@ -735,14 +730,14 @@ ProcReparentWindow(register ClientPtr client) int ProcMapWindow(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; MapWindow(pWin, client); /* update cache to say it is mapped */ return(client->noClientException); @@ -751,14 +746,14 @@ ProcMapWindow(register ClientPtr client) int ProcMapSubwindows(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; MapSubwindows(pWin, client); /* update cache to say it is mapped */ return(client->noClientException); @@ -767,14 +762,14 @@ ProcMapSubwindows(register ClientPtr client) int ProcUnmapWindow(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; UnmapWindow(pWin, FALSE); /* update cache to say it is mapped */ return(client->noClientException); @@ -783,14 +778,14 @@ ProcUnmapWindow(register ClientPtr client) int ProcUnmapSubwindows(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xResourceReq); + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow( stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; UnmapSubwindows(pWin); return(client->noClientException); } @@ -798,16 +793,15 @@ ProcUnmapSubwindows(register ClientPtr client) int ProcConfigureWindow(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xConfigureWindowReq); register int result; - int len; + int len, rc; REQUEST_AT_LEAST_SIZE(xConfigureWindowReq); - pWin = (WindowPtr)SecurityLookupWindow( stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; len = client->req_len - (sizeof(xConfigureWindowReq) >> 2); if (Ones((Mask)stuff->mask) != len) return BadLength; @@ -822,8 +816,9 @@ ProcConfigureWindow(register ClientPtr client) int ProcCirculateWindow(register ClientPtr client) { - register WindowPtr pWin; + WindowPtr pWin; REQUEST(xCirculateWindowReq); + int rc; REQUEST_SIZE_MATCH(xCirculateWindowReq); if ((stuff->direction != RaiseLowest) && @@ -832,10 +827,9 @@ ProcCirculateWindow(register ClientPtr client) client->errorValue = stuff->direction; return BadValue; } - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; CirculateWindow(pWin, (int)stuff->direction, client); return(client->noClientException); } @@ -903,16 +897,15 @@ int ProcQueryTree(register ClientPtr client) { xQueryTreeReply reply; - int numChildren = 0; - register WindowPtr pChild, pWin, pHead; + int rc, numChildren = 0; + WindowPtr pChild, pWin, pHead; Window *childIDs = (Window *)NULL; REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; reply.type = X_Reply; reply.root = WindowTable[pWin->drawable.pScreen->myNum]->drawable.id; reply.sequenceNumber = client->sequence; @@ -1025,10 +1018,9 @@ ProcSetSelectionOwner(register ClientPtr client) return Success; if (stuff->window != None) { - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + int rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; } else pWin = (WindowPtr)None; @@ -1142,12 +1134,12 @@ ProcConvertSelection(register ClientPtr client) xEvent event; WindowPtr pWin; REQUEST(xConvertSelectionReq); + int rc; REQUEST_SIZE_MATCH(xConvertSelectionReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->requestor, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->requestor, client, DixReadAccess); + if (rc != Success) + return rc; paramsOkay = (ValidAtom(stuff->selection) && ValidAtom(stuff->target)); if (stuff->property != None) @@ -1262,18 +1254,17 @@ ProcTranslateCoords(register ClientPtr client) { REQUEST(xTranslateCoordsReq); - register WindowPtr pWin, pDst; + WindowPtr pWin, pDst; xTranslateCoordsReply rep; + int rc; REQUEST_SIZE_MATCH(xTranslateCoordsReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->srcWid, client, - DixReadAccess); - if (!pWin) - return(BadWindow); - pDst = (WindowPtr)SecurityLookupWindow(stuff->dstWid, client, - DixReadAccess); - if (!pDst) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->srcWid, client, DixReadAccess); + if (rc != Success) + return rc; + rc = dixLookupWindow(&pDst, stuff->dstWid, client, DixReadAccess); + if (rc != Success) + return rc; rep.type = X_Reply; rep.length = 0; rep.sequenceNumber = client->sequence; @@ -1762,13 +1753,13 @@ int ProcClearToBackground(register ClientPtr client) { REQUEST(xClearAreaReq); - register WindowPtr pWin; + WindowPtr pWin; + int rc; REQUEST_SIZE_MATCH(xClearAreaReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; if (pWin->drawable.class == InputOnly) { client->errorValue = stuff->window; @@ -2496,7 +2487,7 @@ ProcCreateColormap(register ClientPtr client) VisualPtr pVisual; ColormapPtr pmap; Colormap mid; - register WindowPtr pWin; + WindowPtr pWin; ScreenPtr pScreen; REQUEST(xCreateColormapReq); int i, result; @@ -2510,10 +2501,9 @@ ProcCreateColormap(register ClientPtr client) } mid = stuff->mid; LEGAL_NEW_RESOURCE(mid, client); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + result = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (result != Success) + return result; pScreen = pWin->drawable.pScreen; for (i = 0, pVisual = pScreen->visuals; @@ -2631,16 +2621,14 @@ int ProcListInstalledColormaps(register ClientPtr client) { xListInstalledColormapsReply *preply; - int nummaps; + int nummaps, rc; WindowPtr pWin; REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixReadAccess); - - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; preply = (xListInstalledColormapsReply *) ALLOCATE_LOCAL(sizeof(xListInstalledColormapsReply) + diff --git a/dix/events.c b/dix/events.c index c7cf73e46..0053f42d4 100644 --- a/dix/events.c +++ b/dix/events.c @@ -2228,16 +2228,15 @@ static int XineramaWarpPointer(ClientPtr client) { WindowPtr dest = NULL; - int x, y; + int x, y, rc; REQUEST(xWarpPointerReq); - if (stuff->dstWid != None) - { - dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess); - if (!dest) - return BadWindow; + if (stuff->dstWid != None) { + rc = dixLookupWindow(&dest, stuff->dstWid, client, DixReadAccess); + if (rc != Success) + return rc; } x = sprite.hotPhys.x; y = sprite.hotPhys.y; @@ -2248,8 +2247,9 @@ XineramaWarpPointer(ClientPtr client) XID winID = stuff->srcWid; WindowPtr source; - source = SecurityLookupWindow(winID, client, DixReadAccess); - if (!source) return BadWindow; + rc = dixLookupWindow(&source, winID, client, DixReadAccess); + if (rc != Success) + return rc; winX = source->drawable.x; winY = source->drawable.y; @@ -2301,7 +2301,7 @@ int ProcWarpPointer(ClientPtr client) { WindowPtr dest = NULL; - int x, y; + int x, y, rc; ScreenPtr newScreen; REQUEST(xWarpPointerReq); @@ -2313,11 +2313,10 @@ ProcWarpPointer(ClientPtr client) return XineramaWarpPointer(client); #endif - if (stuff->dstWid != None) - { - dest = SecurityLookupWindow(stuff->dstWid, client, DixReadAccess); - if (!dest) - return BadWindow; + if (stuff->dstWid != None) { + rc = dixLookupWindow(&dest, stuff->dstWid, client, DixReadAccess); + if (rc != Success) + return rc; } x = sprite.hotPhys.x; y = sprite.hotPhys.y; @@ -2328,8 +2327,9 @@ ProcWarpPointer(ClientPtr client) XID winID = stuff->srcWid; WindowPtr source; - source = SecurityLookupWindow(winID, client, DixReadAccess); - if (!source) return BadWindow; + rc = dixLookupWindow(&source, winID, client, DixReadAccess); + if (rc != Success) + return rc; winX = source->drawable.x; winY = source->drawable.y; @@ -3532,8 +3532,8 @@ SetInputFocus( Bool followOK) { register FocusClassPtr focus; - register WindowPtr focusWin; - int mode; + WindowPtr focusWin; + int mode, rc; TimeStamp time; UpdateCurrentTime(); @@ -3550,14 +3550,12 @@ SetInputFocus( focusWin = (WindowPtr)(long)focusID; else if ((focusID == FollowKeyboard) && followOK) focusWin = inputInfo.keyboard->focus->win; - else if (!(focusWin = SecurityLookupWindow(focusID, client, - DixReadAccess))) - return BadWindow; - else - { + else { + rc = dixLookupWindow(&focusWin, focusID, client, DixReadAccess); + if (rc != Success) + return rc; /* It is a match error to try to set the input focus to an unviewable window. */ - if(!focusWin->realized) return(BadMatch); } @@ -3646,6 +3644,7 @@ ProcGrabPointer(ClientPtr client) CursorPtr cursor, oldCursor; REQUEST(xGrabPointerReq); TimeStamp time; + int rc; REQUEST_SIZE_MATCH(xGrabPointerReq); UpdateCurrentTime(); @@ -3671,17 +3670,17 @@ ProcGrabPointer(ClientPtr client) client->errorValue = stuff->eventMask; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; if (stuff->confineTo == None) confineTo = NullWindow; else { - confineTo = SecurityLookupWindow(stuff->confineTo, client, - DixReadAccess); - if (!confineTo) - return BadWindow; + rc = dixLookupWindow(&confineTo, stuff->confineTo, client, + DixReadAccess); + if (rc != Success) + return rc; } if (stuff->cursor == None) cursor = NullCursor; @@ -3812,9 +3811,10 @@ GrabDevice(register ClientPtr client, register DeviceIntPtr dev, unsigned this_mode, unsigned other_mode, Window grabWindow, unsigned ownerEvents, Time ctime, Mask mask, CARD8 *status) { - register WindowPtr pWin; + WindowPtr pWin; register GrabPtr grab; TimeStamp time; + int rc; UpdateCurrentTime(); if ((this_mode != GrabModeSync) && (this_mode != GrabModeAsync)) @@ -3832,9 +3832,9 @@ GrabDevice(register ClientPtr client, register DeviceIntPtr dev, client->errorValue = ownerEvents; return BadValue; } - pWin = SecurityLookupWindow(grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; time = ClientTimeToServerTime(ctime); grab = dev->grab; if (grab && !SameClient(grab, client)) @@ -3918,11 +3918,12 @@ ProcQueryPointer(ClientPtr client) WindowPtr pWin, t; REQUEST(xResourceReq); DeviceIntPtr mouse = inputInfo.pointer; + int rc; REQUEST_SIZE_MATCH(xResourceReq); - pWin = SecurityLookupWindow(stuff->id, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; if (mouse->valuator->motionHintWindow) MaybeStopHint(mouse, client); rep.type = X_Reply; @@ -4086,8 +4087,8 @@ ProcSendEvent(ClientPtr client) effectiveFocus = pWin = inputFocus; } else - pWin = SecurityLookupWindow(stuff->destination, client, - DixReadAccess); + dixLookupWindow(&pWin, stuff->destination, client, DixReadAccess); + if (!pWin) return BadWindow; if ((stuff->propagate != xFalse) && (stuff->propagate != xTrue)) @@ -4123,11 +4124,12 @@ ProcUngrabKey(ClientPtr client) WindowPtr pWin; GrabRec tempGrab; DeviceIntPtr keybd = inputInfo.keyboard; + int rc; REQUEST_SIZE_MATCH(xUngrabKeyReq); - pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; if (((stuff->key > keybd->key->curKeySyms.maxKeyCode) || (stuff->key < keybd->key->curKeySyms.minKeyCode)) @@ -4164,6 +4166,7 @@ ProcGrabKey(ClientPtr client) REQUEST(xGrabKeyReq); GrabPtr grab; DeviceIntPtr keybd = inputInfo.keyboard; + int rc; REQUEST_SIZE_MATCH(xGrabKeyReq); if ((stuff->ownerEvents != xTrue) && (stuff->ownerEvents != xFalse)) @@ -4196,9 +4199,9 @@ ProcGrabKey(ClientPtr client) client->errorValue = stuff->modifiers; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; grab = CreateGrab(client->index, keybd, pWin, (Mask)(KeyPressMask | KeyReleaseMask), (Bool)stuff->ownerEvents, @@ -4218,6 +4221,7 @@ ProcGrabButton(ClientPtr client) REQUEST(xGrabButtonReq); CursorPtr cursor; GrabPtr grab; + int rc; REQUEST_SIZE_MATCH(xGrabButtonReq); if ((stuff->pointerMode != GrabModeSync) && @@ -4248,16 +4252,16 @@ ProcGrabButton(ClientPtr client) client->errorValue = stuff->eventMask; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; if (stuff->confineTo == None) confineTo = NullWindow; else { - confineTo = SecurityLookupWindow(stuff->confineTo, client, - DixReadAccess); - if (!confineTo) - return BadWindow; + rc = dixLookupWindow(&confineTo, stuff->confineTo, client, + DixReadAccess); + if (rc != Success) + return rc; } if (stuff->cursor == None) cursor = NullCursor; @@ -4289,6 +4293,7 @@ ProcUngrabButton(ClientPtr client) REQUEST(xUngrabButtonReq); WindowPtr pWin; GrabRec tempGrab; + int rc; REQUEST_SIZE_MATCH(xUngrabButtonReq); if ((stuff->modifiers != AnyModifier) && @@ -4297,9 +4302,9 @@ ProcUngrabButton(ClientPtr client) client->errorValue = stuff->modifiers; return BadValue; } - pWin = SecurityLookupWindow(stuff->grabWindow, client, DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->grabWindow, client, DixReadAccess); + if (rc != Success) + return rc; tempGrab.resource = client->clientAsMask; tempGrab.device = inputInfo.pointer; tempGrab.window = pWin; diff --git a/dix/property.c b/dix/property.c index 5c1e957a5..d40284901 100644 --- a/dix/property.c +++ b/dix/property.c @@ -94,7 +94,7 @@ PrintPropertys(WindowPtr pWin) int ProcRotateProperties(ClientPtr client) { - int i, j, delta; + int i, j, delta, rc; REQUEST(xRotatePropertiesReq); WindowPtr pWin; register Atom * atoms; @@ -104,10 +104,9 @@ ProcRotateProperties(ClientPtr client) REQUEST_FIXED_SIZE(xRotatePropertiesReq, stuff->nAtoms << 2); UpdateCurrentTime(); - pWin = (WindowPtr) SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; if (!stuff->nAtoms) return(Success); atoms = (Atom *) & stuff[1]; @@ -181,9 +180,7 @@ ProcChangeProperty(ClientPtr client) WindowPtr pWin; char format, mode; unsigned long len; - int sizeInBytes; - int totalSize; - int err; + int sizeInBytes, totalSize, err; REQUEST(xChangePropertyReq); REQUEST_AT_LEAST_SIZE(xChangePropertyReq); @@ -208,10 +205,9 @@ ProcChangeProperty(ClientPtr client) totalSize = len * sizeInBytes; REQUEST_FIXED_SIZE(xChangePropertyReq, totalSize); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + err = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (err != Success) + return err; if (!ValidAtom(stuff->property)) { client->errorValue = stuff->property; @@ -445,7 +441,7 @@ int ProcGetProperty(ClientPtr client) { PropertyPtr pProp, prevProp; - unsigned long n, len, ind; + unsigned long n, len, ind, rc; WindowPtr pWin; xGetPropertyReply reply; Mask access_mode = DixReadAccess; @@ -454,10 +450,9 @@ ProcGetProperty(ClientPtr client) REQUEST_SIZE_MATCH(xGetPropertyReq); if (stuff->delete) UpdateCurrentTime(); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; if (!ValidAtom(stuff->property)) { @@ -585,16 +580,15 @@ ProcListProperties(ClientPtr client) { Atom *pAtoms = NULL, *temppAtoms; xListPropertiesReply xlpr; - int numProps = 0; + int rc, numProps = 0; WindowPtr pWin; PropertyPtr pProp; REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->id, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->id, client, DixReadAccess); + if (rc != Success) + return rc; pProp = wUserProps (pWin); while (pProp) @@ -636,10 +630,9 @@ ProcDeleteProperty(register ClientPtr client) REQUEST_SIZE_MATCH(xDeletePropertyReq); UpdateCurrentTime(); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixWriteAccess); - if (!pWin) - return(BadWindow); + result = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (result != Success) + return result; if (!ValidAtom(stuff->property)) { client->errorValue = stuff->property; diff --git a/hw/darwin/quartz/applewm.c b/hw/darwin/quartz/applewm.c index a9d8b5659..224d6c5e0 100644 --- a/hw/darwin/quartz/applewm.c +++ b/hw/darwin/quartz/applewm.c @@ -490,11 +490,9 @@ ProcAppleWMSetWindowLevel( REQUEST_SIZE_MATCH(xAppleWMSetWindowLevelReq); - if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, DixReadAccess))) - { + if (Success != dixLookupWindow(&pWin, stuff->window, client, + DixReadAccess)) return BadValue; - } if (stuff->level < 0 || stuff->level >= AppleWMNumWindowLevels) { return BadValue; @@ -602,11 +600,9 @@ ProcAppleWMFrameDraw( REQUEST_AT_LEAST_SIZE(xAppleWMFrameDrawReq); - if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, DixReadAccess))) - { + if (Success != dixLookupWindow(&pWin, stuff->window, client, + DixReadAccess)) return BadValue; - } ir = make_box (stuff->ix, stuff->iy, stuff->iw, stuff->ih); or = make_box (stuff->ox, stuff->oy, stuff->ow, stuff->oh); diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c index 02e8b1e7c..b7c81ee57 100644 --- a/hw/dmx/dmx.c +++ b/hw/dmx/dmx.c @@ -286,8 +286,8 @@ static int ProcDMXForceWindowCreation(ClientPtr client) return -1; /* BadWindow */ FOR_NSCREENS(i) { - if (!(pWin = SecurityLookupWindow(win->info[i].id, client, - DixReadAccess))) + if (Success != dixLookupWindow(&pWin, win->info[i].id, client, + DixReadAccess)) return -1; /* BadWindow */ dmxForceWindowCreation(pWin); @@ -296,8 +296,8 @@ static int ProcDMXForceWindowCreation(ClientPtr client) } #endif - if (!(pWin = SecurityLookupWindow(stuff->window, client, - DixReadAccess))) + if (Success != dixLookupWindow(&pWin, stuff->window, client, + DixReadAccess)) return -1; /* BadWindow */ dmxForceWindowCreation(pWin); @@ -560,8 +560,8 @@ static int dmxPopulatePanoramiX(ClientPtr client, Window window, return -1; /* BadWindow */ FOR_NSCREENS(i) { - if (!(pWin = SecurityLookupWindow(win->info[i].id, client, - DixReadAccess))) + if (Success != dixLookupWindow(&pWin, win->info[i].id, client, + DixReadAccess)) return -1; /* BadWindow */ if (dmxGetWindowAttributes(pWin, &attr)) { screens[count] = attr.screen; @@ -587,7 +587,7 @@ static int dmxPopulate(ClientPtr client, Window window, CARD32 *screens, pos, vis); #endif - if (!(pWin = SecurityLookupWindow(window, client, DixReadAccess))) + if (Success != dixLookupWindow(&pWin, window, client, DixReadAccess)) return -1; /* BadWindow */ dmxGetWindowAttributes(pWin, &attr); diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c index 20a02a173..aa9d8318c 100644 --- a/hw/dmx/glxProxy/glxcmds.c +++ b/hw/dmx/glxProxy/glxcmds.c @@ -1137,9 +1137,7 @@ static int MakeCurrent(__GLXclientState *cl, } #ifdef PANORAMIX else if (pXinDraw) { - pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, - client, - DixReadAccess); + dixLookupWindow(&pWin, pXinDraw->info[s].id, client, DixReadAccess); } #endif else if (pGlxWindow) { @@ -1195,9 +1193,8 @@ static int MakeCurrent(__GLXclientState *cl, } #ifdef PANORAMIX else if (pXinReadDraw) { - pReadWin = (WindowPtr)SecurityLookupWindow(pXinReadDraw->info[s].id, - client, - DixReadAccess); + dixLookupWindow(&pReadWin, pXinReadDraw->info[s].id, client, + DixReadAccess); } #endif else if (pGlxReadWindow) { @@ -2058,9 +2055,7 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag) } #ifdef PANORAMIX else if (pXinDraw) { - pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[s].id, - client, - DixReadAccess); + dixLookupWindow(&pWin, pXinDraw->info[s].id, client, DixReadAccess); } #endif else if (pGlxWindow) { @@ -3359,9 +3354,8 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc) return __glXBadDrawable; } - pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id, - client, - DixReadAccess); + dixLookupWindow(&pWin, pXinDraw->info[screen].id, client, + DixReadAccess); } #endif @@ -3521,9 +3515,8 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc) return __glXBadDrawable; } - pWin = (WindowPtr)SecurityLookupWindow(pXinDraw->info[screen].id, - client, - DixReadAccess); + dixLookupWindow(&pWin, pXinDraw->info[screen].id, client, + DixReadAccess); } #endif diff --git a/hw/xwin/winclipboardwrappers.c b/hw/xwin/winclipboardwrappers.c index e9bcea9a8..825d3dc70 100755 --- a/hw/xwin/winclipboardwrappers.c +++ b/hw/xwin/winclipboardwrappers.c @@ -344,13 +344,11 @@ winProcSetSelectionOwner (ClientPtr client) if (None != stuff->window) { /* Grab the Window from the request */ - pWindow = (WindowPtr) SecurityLookupWindow (stuff->window, client, - DixReadAccess); - if (!pWindow) - { + int rc = dixLookupWindow(&pWindow, stuff->window, client, DixReadAccess); + if (rc != Success) { ErrorF ("winProcSetSelectionOwner - Found BadWindow, aborting.\n"); goto winProcSetSelectionOwner_Done; - } + } } /* Now we either have a valid window or None */ diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c index ac92e26df..e1994de84 100755 --- a/hw/xwin/winwindowswm.c +++ b/hw/xwin/winwindowswm.c @@ -441,7 +441,7 @@ ProcWindowsWMFrameDraw (register ClientPtr client) WindowPtr pWin; win32RootlessWindowPtr pRLWinPriv; RECT rcNew; - int nCmdShow; + int nCmdShow, rc; RegionRec newShape; ScreenPtr pScreen; @@ -450,11 +450,9 @@ ProcWindowsWMFrameDraw (register ClientPtr client) #if CYGMULTIWINDOW_DEBUG ErrorF ("ProcWindowsWMFrameDraw\n"); #endif - if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, DixReadAccess))) - { - return BadValue; - } + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; #if CYGMULTIWINDOW_DEBUG ErrorF ("ProcWindowsWMFrameDraw - Window found\n"); #endif @@ -538,6 +536,7 @@ ProcWindowsWMFrameSetTitle( REQUEST(xWindowsWMFrameSetTitleReq); WindowPtr pWin; win32RootlessWindowPtr pRLWinPriv; + int rc; #if CYGMULTIWINDOW_DEBUG ErrorF ("ProcWindowsWMFrameSetTitle\n"); @@ -545,11 +544,9 @@ ProcWindowsWMFrameSetTitle( REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq); - if (!(pWin = SecurityLookupWindow((Drawable)stuff->window, - client, DixReadAccess))) - { - return BadValue; - } + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; #if CYGMULTIWINDOW_DEBUG ErrorF ("ProcWindowsWMFrameSetTitle - Window found\n"); #endif diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c index b1ec68b83..7f98965a4 100644 --- a/randr/rrdispatch.c +++ b/randr/rrdispatch.c @@ -70,11 +70,12 @@ ProcRRSelectInput (ClientPtr client) WindowPtr pWin; RREventPtr pRREvent, *pHead; XID clientResource; + int rc; REQUEST_SIZE_MATCH(xRRSelectInputReq); - pWin = SecurityLookupWindow (stuff->window, client, DixWriteAccess); - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); + if (rc != Success) + return rc; pHead = (RREventPtr *)SecurityLookupIDByType(client, pWin->drawable.id, RREventType, DixWriteAccess); diff --git a/randr/rrscreen.c b/randr/rrscreen.c index f1d8fc5d9..6f7afaf7a 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -217,13 +217,12 @@ ProcRRGetScreenSizeRange (ClientPtr client) WindowPtr pWin; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; + int rc; REQUEST_SIZE_MATCH(xRRGetScreenInfoReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pScrPriv = rrGetScrPriv(pScreen); @@ -268,14 +267,12 @@ ProcRRSetScreenSize (ClientPtr client) WindowPtr pWin; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; - int i; + int i, rc; REQUEST_SIZE_MATCH(xRRSetScreenSizeReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pScrPriv = rrGetScrPriv(pScreen); @@ -336,19 +333,16 @@ ProcRRGetScreenResources (ClientPtr client) rrScrPrivPtr pScrPriv; CARD8 *extra; unsigned long extraLen; - int i; + int i, n, rc; RRCrtc *crtcs; RROutput *outputs; xRRModeInfo *modeinfos; CARD8 *names; - int n; REQUEST_SIZE_MATCH(xRRGetScreenResourcesReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pScrPriv = rrGetScrPriv(pScreen); @@ -580,7 +574,7 @@ ProcRRGetScreenInfo (ClientPtr client) REQUEST(xRRGetScreenInfoReq); xRRGetScreenInfoReply rep; WindowPtr pWin; - int n; + int n, rc; ScreenPtr pScreen; rrScrPrivPtr pScrPriv; CARD8 *extra; @@ -588,11 +582,9 @@ ProcRRGetScreenInfo (ClientPtr client) RROutputPtr output; REQUEST_SIZE_MATCH(xRRGetScreenInfoReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - - if (!pWin) - return BadWindow; + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; pScreen = pWin->drawable.pScreen; pScrPriv = rrGetScrPriv(pScreen); diff --git a/xfixes/cursor.c b/xfixes/cursor.c index 21dbcc2cb..86a512c25 100755 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -239,12 +239,12 @@ ProcXFixesSelectCursorInput (ClientPtr client) { REQUEST (xXFixesSelectCursorInputReq); WindowPtr pWin; + int rc; REQUEST_SIZE_MATCH (xXFixesSelectCursorInputReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; if (stuff->eventMask & ~CursorAllEvents) { client->errorValue = stuff->eventMask; diff --git a/xfixes/saveset.c b/xfixes/saveset.c index 9ad2627c0..ab75619e8 100755 --- a/xfixes/saveset.c +++ b/xfixes/saveset.c @@ -37,10 +37,9 @@ ProcXFixesChangeSaveSet(ClientPtr client) REQUEST(xXFixesChangeSaveSetReq); REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + result = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (result != Success) + return result; if (client->clientAsMask == (CLIENT_BITS(pWin->drawable.id))) return BadMatch; if ((stuff->mode != SetModeInsert) && (stuff->mode != SetModeDelete)) diff --git a/xfixes/select.c b/xfixes/select.c index a718715a1..d1c22c552 100755 --- a/xfixes/select.c +++ b/xfixes/select.c @@ -193,12 +193,12 @@ ProcXFixesSelectSelectionInput (ClientPtr client) { REQUEST (xXFixesSelectSelectionInputReq); WindowPtr pWin; + int rc; REQUEST_SIZE_MATCH (xXFixesSelectSelectionInputReq); - pWin = (WindowPtr)SecurityLookupWindow(stuff->window, client, - DixReadAccess); - if (!pWin) - return(BadWindow); + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; if (stuff->eventMask & ~SelectionAllEvents) { client->errorValue = stuff->eventMask; From 10aabb729d1586db344f9c1abdf1cf45e7ddaa7a Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 16:36:29 -0500 Subject: [PATCH 39/45] Convert callers of LookupDrawable() to dixLookupDrawable(). --- GL/glx/glxcmds.c | 18 +++++----- XTrap/xtrapdi.c | 4 +-- Xext/mbuf.c | 10 +++--- Xext/saver.c | 36 ++++++++++--------- Xext/xprint.c | 7 ++-- hw/dmx/glxProxy/glxcmds.c | 75 ++++++++++++++++++++------------------- 6 files changed, 80 insertions(+), 70 deletions(-) diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c index ccdf3fa00..6273edc56 100644 --- a/GL/glx/glxcmds.c +++ b/GL/glx/glxcmds.c @@ -441,6 +441,7 @@ static int GetDrawableOrPixmap( __GLXcontext *glxc, GLXDrawable drawId, __GLcontextModes *modes; __GLXdrawable *pGlxDraw; __GLXpixmap *drawPixmap = NULL; + int rc; /* This is the GLX 1.3 case - the client passes in a GLXWindow and * we just return the __GLXdrawable. The first time a GLXPixmap @@ -466,8 +467,8 @@ static int GetDrawableOrPixmap( __GLXcontext *glxc, GLXDrawable drawId, * GLXWindow with the same XID as an X Window, so we wont get any * resource ID clashes. Effectively, the X Window is now also a * GLXWindow. */ - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { if (pDraw->type == DRAWABLE_WINDOW) { VisualID vid = wVisual((WindowPtr)pDraw); @@ -1199,12 +1200,12 @@ static int ValidateCreateDrawable(ClientPtr client, ScreenPtr pScreen; VisualPtr pVisual; __GLXscreen *pGlxScreen; - int i; + int i, rc; LEGAL_NEW_RESOURCE(glxDrawableId, client); - pDraw = (DrawablePtr) LookupDrawable(drawablId, client); - if (!pDraw || pDraw->type != type) { + rc = dixLookupDrawable(&pDraw, drawablId, client, 0, DixUnknownAccess); + if (rc != Success || pDraw->type != type) { client->errorValue = drawablId; return type == DRAWABLE_WINDOW ? BadWindow : BadPixmap; } @@ -2034,10 +2035,11 @@ int __glXDisp_BindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc) xGLXBindSwapBarrierSGIXReq *req = (xGLXBindSwapBarrierSGIXReq *) pc; XID drawable = req->drawable; int barrier = req->barrier; - DrawablePtr pDraw = (DrawablePtr) LookupDrawable(drawable, client); - int screen; + DrawablePtr pDraw; + int screen, rc; - if (pDraw && (pDraw->type == DRAWABLE_WINDOW)) { + rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixUnknownAccess); + if (rc == Success && (pDraw->type == DRAWABLE_WINDOW)) { screen = pDraw->pScreen->myNum; if (__glXSwapBarrierFuncs && __glXSwapBarrierFuncs[screen].bindSwapBarrierFunc) { diff --git a/XTrap/xtrapdi.c b/XTrap/xtrapdi.c index c5d640d0b..23d3bde7f 100644 --- a/XTrap/xtrapdi.c +++ b/XTrap/xtrapdi.c @@ -1092,8 +1092,8 @@ int XETrapRequestVector(ClientPtr client) pdata->hdr.client = client->index; /* stuff client index in hdr */ if (BitIsTrue(penv->cur.data_config_flags_data,XETrapWinXY)) { - window_ptr = (WindowPtr) LookupDrawable(stuff->id, client); - if (window_ptr == 0L) + if (Success != dixLookupDrawable(&window_ptr, stuff->id, + client, 0, DixUnknownAccess)) { /* Failed...invalidate the X and Y coordinate data. */ pdata->hdr.win_x = -1L; pdata->hdr.win_y = -1L; diff --git a/Xext/mbuf.c b/Xext/mbuf.c index 43e2cc107..ed352e21b 100644 --- a/Xext/mbuf.c +++ b/Xext/mbuf.c @@ -786,15 +786,15 @@ ProcGetBufferInfo (client) DrawablePtr pDrawable; xMbufGetBufferInfoReply rep; ScreenPtr pScreen; - int i, j, k; - int n; + int i, j, k, n, rc; xMbufBufferInfo *pInfo; int nInfo; DepthPtr pDepth; - pDrawable = (DrawablePtr) LookupDrawable (stuff->drawable, client); - if (!pDrawable) - return BadDrawable; + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; pScreen = pDrawable->pScreen; nInfo = 0; for (i = 0; i < pScreen->numDepths; i++) diff --git a/Xext/saver.c b/Xext/saver.c index d6b537a78..7e3ebf408 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -780,16 +780,17 @@ ProcScreenSaverQueryInfo (client) { REQUEST(xScreenSaverQueryInfoReq); xScreenSaverQueryInfoReply rep; - register int n; + register int n, rc; ScreenSaverStuffPtr pSaver; DrawablePtr pDraw; CARD32 lastInput; ScreenSaverScreenPrivatePtr pPriv; REQUEST_SIZE_MATCH (xScreenSaverQueryInfoReq); - pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client); - if (!pDraw) - return BadDrawable; + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; pSaver = &savedScreenInfo[pDraw->pScreen->myNum]; pPriv = GetScreenPrivate (pDraw->pScreen); @@ -852,11 +853,13 @@ ProcScreenSaverSelectInput (client) { REQUEST(xScreenSaverSelectInputReq); DrawablePtr pDraw; + int rc; REQUEST_SIZE_MATCH (xScreenSaverSelectInputReq); - pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client); - if (!pDraw) - return BadDrawable; + rc = dixLookupDrawable (&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; if (!setEventMask (pDraw->pScreen, client, stuff->eventMask)) return BadAlloc; return Success; @@ -871,9 +874,7 @@ ScreenSaverSetAttributes (ClientPtr client) ScreenPtr pScreen; ScreenSaverScreenPrivatePtr pPriv = 0; ScreenSaverAttrPtr pAttr = 0; - int ret; - int len; - int class, bw, depth; + int ret, len, class, bw, depth; unsigned long visual; int idepth, ivisual; Bool fOK; @@ -891,9 +892,10 @@ ScreenSaverSetAttributes (ClientPtr client) ColormapPtr pCmap; REQUEST_AT_LEAST_SIZE (xScreenSaverSetAttributesReq); - pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client); - if (!pDraw) - return BadDrawable; + ret = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (ret != Success) + return ret; pScreen = pDraw->pScreen; pParent = WindowTable[pScreen->myNum]; @@ -1246,11 +1248,13 @@ ScreenSaverUnsetAttributes (ClientPtr client) REQUEST(xScreenSaverSetAttributesReq); DrawablePtr pDraw; ScreenSaverScreenPrivatePtr pPriv; + int rc; REQUEST_SIZE_MATCH (xScreenSaverUnsetAttributesReq); - pDraw = (DrawablePtr) LookupDrawable (stuff->drawable, client); - if (!pDraw) - return BadDrawable; + rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (rc != Success) + return rc; pPriv = GetScreenPrivate (pDraw->pScreen); if (pPriv && pPriv->attr && pPriv->attr->client == client) { diff --git a/Xext/xprint.c b/Xext/xprint.c index d8fc51713..4ac13e6d1 100644 --- a/Xext/xprint.c +++ b/Xext/xprint.c @@ -1944,8 +1944,11 @@ ProcXpPutDocumentData(ClientPtr client) if (stuff->drawable) { if (pContext->state & DOC_RAW_STARTED) return BadDrawable; - pDraw = (DrawablePtr)LookupDrawable(stuff->drawable, client); - if (!pDraw || pDraw->pScreen->myNum != pContext->screenNum) + result = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, + DixUnknownAccess); + if (result != Success) + return result; + if (pDraw->pScreen->myNum != pContext->screenNum) return BadDrawable; } else { if (pContext->state & DOC_COOKED_STARTED) diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c index aa9d8318c..6771cf1de 100644 --- a/hw/dmx/glxProxy/glxcmds.c +++ b/hw/dmx/glxProxy/glxcmds.c @@ -430,9 +430,10 @@ int __glXBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc) DrawablePtr pDraw; __GLXpixmap *pGlxPixmap = NULL; __glXWindow *pGlxWindow = NULL; + int rc; - pDraw = (DrawablePtr) LookupDrawable(req->drawable, client); - if (!pDraw) { + rc = dixLookupDrawable(&pDraw, req->drawable, client, 0, DixUnknownAccess); + if (rc != Success) { pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->drawable, __glXPixmapRes); if (pGlxPixmap) pDraw = pGlxPixmap->pDraw; @@ -459,9 +460,10 @@ int __glXJoinSwapGroupSGIX(__GLXclientState *cl, GLbyte *pc) DrawablePtr pDraw, pMember = NULL; __GLXpixmap *pGlxPixmap = NULL; __glXWindow *pGlxWindow = NULL; + int rc; - pDraw = (DrawablePtr) LookupDrawable(req->drawable, client); - if (!pDraw) { + rc = dixLookupDrawable(&pDraw, req->drawable, client, 0, DixUnknownAccess); + if (rc != Success) { pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->drawable, __glXPixmapRes); if (pGlxPixmap) pDraw = pGlxPixmap->pDraw; @@ -479,8 +481,9 @@ int __glXJoinSwapGroupSGIX(__GLXclientState *cl, GLbyte *pc) } if (req->member != None) { - pMember = (DrawablePtr) LookupDrawable(req->member, client); - if (!pMember) { + rc = dixLookupDrawable(&pMember, req->member, client, 0, + DixUnknownAccess); + if (rc != Success) { pGlxPixmap = (__GLXpixmap *) LookupIDByType(req->member, __glXPixmapRes); if (pGlxPixmap) pMember = pGlxPixmap->pDraw; @@ -734,7 +737,7 @@ static int MakeCurrent(__GLXclientState *cl, #endif int from_screen = 0; int to_screen = 0; - int s; + int s, rc; /* ** If one is None and the other isn't, it's a bad match. @@ -778,8 +781,8 @@ static int MakeCurrent(__GLXclientState *cl, } if (drawId != None) { - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { if (pDraw->type == DRAWABLE_WINDOW) { /* ** Drawable is an X Window. @@ -885,8 +888,8 @@ static int MakeCurrent(__GLXclientState *cl, } if (readId != None && readId != drawId ) { - pReadDraw = (DrawablePtr) LookupDrawable(readId, client); - if (pReadDraw) { + rc = dixLookupDrawable(&pReadDraw, readId, client, 0,DixUnknownAccess); + if (rc == Success) { if (pReadDraw->type == DRAWABLE_WINDOW) { /* ** Drawable is an X Window. @@ -1636,18 +1639,16 @@ static int CreateGLXPixmap(__GLXclientState *cl, __GLXscreenInfo *pGlxScreen; __GLXvisualConfig *pGlxVisual; __GLXFBConfig *pFBConfig; - int i; - int s; + int i, s, rc; int from_screen, to_screen; #ifdef PANORAMIX PanoramiXRes *pXinDraw = NULL; #endif - pDraw = (DrawablePtr) LookupDrawable(pixmapId, client); - if (!pDraw || pDraw->type != DRAWABLE_PIXMAP) { - client->errorValue = pixmapId; - return BadPixmap; - } + rc = dixLookupDrawable(&pDraw, pixmapId, client, M_DRAWABLE_PIXMAP, + DixUnknownAccess); + if (rc != Success) + return rc; /* ** Check if screen of visual matches screen of pixmap. @@ -1778,7 +1779,8 @@ static int CreateGLXPixmap(__GLXclientState *cl, #ifdef PANORAMIX if (pXinDraw) { - pRealDraw = (DrawablePtr) LookupDrawable(pXinDraw->info[s].id,client); + dixLookupDrawable(&pRealDraw, pXinDraw->info[s].id, client, 0, + DixUnknownAccess); } #endif @@ -1944,14 +1946,13 @@ int __glXDoSwapBuffers(__GLXclientState *cl, XID drawId, GLXContextTag tag) __glXWindow *pGlxWindow = NULL; int from_screen = 0; int to_screen = 0; - int s; + int s, rc; /* ** Check that the GLX drawable is valid. */ - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { - + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { from_screen = to_screen = pDraw->pScreen->myNum; if (pDraw->type == DRAWABLE_WINDOW) { @@ -2099,12 +2100,13 @@ int __glXSwapBuffers(__GLXclientState *cl, GLbyte *pc) __GLXpixmap *pGlxPixmap = NULL; __GLXcontext *glxc = NULL; __glXWindow *pGlxWindow = NULL; + int rc; /* ** Check that the GLX drawable is valid. */ - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { if (pDraw->type != DRAWABLE_WINDOW) { /* ** Drawable is an X pixmap, which is not allowed. @@ -2892,16 +2894,15 @@ int __glXCreateWindow(__GLXclientState *cl, GLbyte *pc) __GLXFBConfig *pGlxFBConfig = NULL; VisualPtr pVisual; VisualID visId; - int i; + int i, rc; /* ** Check if windowId is valid */ - pDraw = (DrawablePtr) LookupDrawable(windowId, client); - if (!pDraw || pDraw->type != DRAWABLE_WINDOW) { - client->errorValue = windowId; - return BadWindow; - } + rc = dixLookupDrawable(&pDraw, windowId, client, M_DRAWABLE_WINDOW, + DixUnknownAccess); + if (rc != Success) + return rc; /* ** Check if screen of window matches screen of fbconfig. @@ -3274,7 +3275,7 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc) GLXDrawable be_drawable = 0; DrawablePtr pDraw = NULL; Display *dpy; - int screen; + int screen, rc; DMXScreenInfo *dmxScreen; CARD32 *attribs = NULL; int attribs_size; @@ -3283,8 +3284,8 @@ int __glXGetDrawableAttributes(__GLXclientState *cl, GLbyte *pc) #endif if (drawId != None) { - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { if (pDraw->type == DRAWABLE_WINDOW) { WindowPtr pWin = (WindowPtr)pDraw; be_drawable = 0; @@ -3435,7 +3436,7 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc) GLXDrawable be_drawable = 0; DrawablePtr pDraw = NULL; Display *dpy; - int screen; + int screen, rc; DMXScreenInfo *dmxScreen; char *attrbuf; #ifdef PANORAMIX @@ -3444,8 +3445,8 @@ int __glXChangeDrawableAttributes(__GLXclientState *cl, GLbyte *pc) #endif if (drawId != None) { - pDraw = (DrawablePtr) LookupDrawable(drawId, client); - if (pDraw) { + rc = dixLookupDrawable(&pDraw, drawId, client, 0, DixUnknownAccess); + if (rc == Success) { if (pDraw->type == DRAWABLE_WINDOW) { WindowPtr pWin = (WindowPtr)pDraw; be_drawable = 0; From f11dafaafc68f5cff1a1538d9566907786d8ab72 Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 16:51:58 -0500 Subject: [PATCH 40/45] Convert callers of SecurityLookupDrawable() to dixLookupDrawable(). --- dbe/dbe.c | 10 +++++----- hw/darwin/quartz/xpr/appledri.c | 22 ++++++++++----------- hw/xfree86/dri/xf86dri.c | 35 +++++++++++++++------------------ 3 files changed, 31 insertions(+), 36 deletions(-) diff --git a/dbe/dbe.c b/dbe/dbe.c index 69ddf4f1c..38375f92a 100644 --- a/dbe/dbe.c +++ b/dbe/dbe.c @@ -865,7 +865,7 @@ ProcDbeGetVisualInfo(ClientPtr client) xDbeGetVisualInfoReply rep; Drawable *drawables; DrawablePtr *pDrawables = NULL; - register int i, j, n; + register int i, j, n, rc; register int count; /* number of visual infos in reply */ register int length; /* length of reply */ ScreenPtr pScreen; @@ -887,11 +887,11 @@ ProcDbeGetVisualInfo(ClientPtr client) for (i = 0; i < stuff->n; i++) { - if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable( - drawables[i], client, DixReadAccess))) - { + rc = dixLookupDrawable(pDrawables+i, drawables[i], client, 0, + DixReadAccess); + if (rc != Success) { DEALLOCATE_LOCAL(pDrawables); - return(BadDrawable); + return rc; } } } diff --git a/hw/darwin/quartz/xpr/appledri.c b/hw/darwin/quartz/xpr/appledri.c index 585d7e1be..dd688cae3 100644 --- a/hw/darwin/quartz/xpr/appledri.c +++ b/hw/darwin/quartz/xpr/appledri.c @@ -213,6 +213,7 @@ ProcAppleDRICreateSurface( DrawablePtr pDrawable; xp_surface_id sid; unsigned int key[2]; + int rc; REQUEST(xAppleDRICreateSurfaceReq); REQUEST_SIZE_MATCH(xAppleDRICreateSurfaceReq); @@ -220,12 +221,10 @@ ProcAppleDRICreateSurface( rep.length = 0; rep.sequenceNumber = client->sequence; - if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( - (Drawable)stuff->drawable, - client, - DixReadAccess))) { - return BadValue; - } + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; rep.key_0 = rep.key_1 = rep.uid = 0; @@ -252,13 +251,12 @@ ProcAppleDRIDestroySurface( REQUEST(xAppleDRIDestroySurfaceReq); DrawablePtr pDrawable; REQUEST_SIZE_MATCH(xAppleDRIDestroySurfaceReq); + int rc; - if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( - (Drawable)stuff->drawable, - client, - DixReadAccess))) { - return BadValue; - } + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; if (!DRIDestroySurface( screenInfo.screens[stuff->screen], (Drawable)stuff->drawable, diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c index 03e6725ff..933cd3e18 100644 --- a/hw/xfree86/dri/xf86dri.c +++ b/hw/xfree86/dri/xf86dri.c @@ -386,6 +386,7 @@ ProcXF86DRICreateDrawable( { xXF86DRICreateDrawableReply rep; DrawablePtr pDrawable; + int rc; REQUEST(xXF86DRICreateDrawableReq); REQUEST_SIZE_MATCH(xXF86DRICreateDrawableReq); @@ -398,12 +399,10 @@ ProcXF86DRICreateDrawable( rep.length = 0; rep.sequenceNumber = client->sequence; - if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( - (Drawable)stuff->drawable, - client, - DixReadAccess))) { - return BadValue; - } + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; if (!DRICreateDrawable( screenInfo.screens[stuff->screen], (Drawable)stuff->drawable, @@ -424,17 +423,17 @@ ProcXF86DRIDestroyDrawable( REQUEST(xXF86DRIDestroyDrawableReq); DrawablePtr pDrawable; REQUEST_SIZE_MATCH(xXF86DRIDestroyDrawableReq); + int rc; + if (stuff->screen >= screenInfo.numScreens) { client->errorValue = stuff->screen; return BadValue; } - if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( - (Drawable)stuff->drawable, - client, - DixReadAccess))) { - return BadValue; - } + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; if (!DRIDestroyDrawable( screenInfo.screens[stuff->screen], (Drawable)stuff->drawable, @@ -455,7 +454,7 @@ ProcXF86DRIGetDrawableInfo( int X, Y, W, H; drm_clip_rect_t * pClipRects; drm_clip_rect_t * pBackClipRects; - int backX, backY; + int backX, backY, rc; REQUEST(xXF86DRIGetDrawableInfoReq); REQUEST_SIZE_MATCH(xXF86DRIGetDrawableInfoReq); @@ -468,12 +467,10 @@ ProcXF86DRIGetDrawableInfo( rep.length = 0; rep.sequenceNumber = client->sequence; - if (!(pDrawable = (DrawablePtr)SecurityLookupDrawable( - (Drawable)stuff->drawable, - client, - DixReadAccess))) { - return BadValue; - } + rc = dixLookupDrawable(&pDrawable, stuff->drawable, client, 0, + DixReadAccess); + if (rc != Success) + return rc; if (!DRIGetDrawableInfo( screenInfo.screens[stuff->screen], pDrawable, From ab1d5b0c31a1cfce95ab6b1d06f209f2c44e19ac Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 17:26:58 -0500 Subject: [PATCH 41/45] Convert callers of LookupClient() to dixLookupClient(). --- Xext/appgroup.c | 7 +++++-- Xext/sync.c | 20 ++++++++++++-------- dix/dispatch.c | 12 +++++------- dix/dixutils.c | 5 +++-- include/dix.h | 3 ++- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/Xext/appgroup.c b/Xext/appgroup.c index 134b172f9..bb7a73ce1 100644 --- a/Xext/appgroup.c +++ b/Xext/appgroup.c @@ -485,10 +485,13 @@ int ProcXagQuery( ClientPtr pClient; AppGroupPtr pAppGrp; REQUEST (xXagQueryReq); - int n; + int n, rc; REQUEST_SIZE_MATCH (xXagQueryReq); - pClient = LookupClient (stuff->resource, client); + rc = dixLookupClient(&pClient, stuff->resource, client, DixUnknownAccess); + if (rc != Success) + return rc; + for (pAppGrp = appGrpList; pAppGrp != NULL; pAppGrp = pAppGrp->next) for (n = 0; n < pAppGrp->nclients; n++) if (pAppGrp->clients[n] == pClient) { diff --git a/Xext/sync.c b/Xext/sync.c index 1d899348b..531b48cc1 100644 --- a/Xext/sync.c +++ b/Xext/sync.c @@ -1452,15 +1452,17 @@ ProcSyncSetPriority(client) { REQUEST(xSyncSetPriorityReq); ClientPtr priorityclient; + int rc; REQUEST_SIZE_MATCH(xSyncSetPriorityReq); if (stuff->id == None) priorityclient = client; - else if (!(priorityclient = LookupClient(stuff->id, client))) - { - client->errorValue = stuff->id; - return BadMatch; + else { + rc = dixLookupClient(&priorityclient, stuff->id, client, + DixUnknownAccess); + if (rc != Success) + return rc; } if (priorityclient->priority != stuff->priority) @@ -1487,15 +1489,17 @@ ProcSyncGetPriority(client) REQUEST(xSyncGetPriorityReq); xSyncGetPriorityReply rep; ClientPtr priorityclient; + int rc; REQUEST_SIZE_MATCH(xSyncGetPriorityReq); if (stuff->id == None) priorityclient = client; - else if (!(priorityclient = LookupClient(stuff->id, client))) - { - client->errorValue = stuff->id; - return BadMatch; + else { + rc = dixLookupClient(&priorityclient, stuff->id, client, + DixUnknownAccess); + if (rc != Success) + return rc; } rep.type = X_Reply; diff --git a/dix/dispatch.c b/dix/dispatch.c index 3060a4c39..51ad07da5 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3388,7 +3388,8 @@ int ProcKillClient(register ClientPtr client) { REQUEST(xResourceReq); - ClientPtr killclient; + ClientPtr killclient; + int rc; REQUEST_SIZE_MATCH(xResourceReq); if (stuff->id == AllTemporary) @@ -3397,8 +3398,8 @@ ProcKillClient(register ClientPtr client) return (client->noClientException); } - if ((killclient = LookupClient(stuff->id, client))) - { + rc = dixLookupClient(&killclient, stuff->id, client, DixDestroyAccess); + if (rc == Success) { CloseDownClient(killclient); /* if an LBX proxy gets killed, isItTimeToYield will be set */ if (isItTimeToYield || (client == killclient)) @@ -3412,10 +3413,7 @@ ProcKillClient(register ClientPtr client) return (client->noClientException); } else - { - client->errorValue = stuff->id; - return (BadValue); - } + return rc; } int diff --git a/dix/dixutils.c b/dix/dixutils.c index 3479ddccf..2859b96e9 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -262,11 +262,12 @@ dixLookupGC(GCPtr *pGC, XID id, ClientPtr client, Mask access) } _X_EXPORT int -dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client) +dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client, Mask access) { pointer pRes = (pointer)SecurityLookupIDByClass(client, rid, RC_ANY, DixReadAccess); int clientIndex = CLIENT_ID(rid); + client->errorValue = rid; if (clientIndex && pRes && clients[clientIndex] && !(rid & SERVER_BIT)) { *pClient = clients[clientIndex]; @@ -312,7 +313,7 @@ _X_EXPORT ClientPtr LookupClient(XID id, ClientPtr client) { ClientPtr pClient; - int i = dixLookupClient(&pClient, id, client); + int i = dixLookupClient(&pClient, id, client, DixUnknownAccess); return (i == Success) ? pClient : NULL; } diff --git a/include/dix.h b/include/dix.h index baff43f54..5c2c5b862 100644 --- a/include/dix.h +++ b/include/dix.h @@ -301,7 +301,8 @@ extern int dixLookupGC( extern int dixLookupClient( ClientPtr *result, XID id, - ClientPtr client); + ClientPtr client, + Mask access_mode); /* * These are deprecated compatibility functions and will be removed soon! From 012807356883128fde58bb2d4f91dd356d6418fc Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 15 Dec 2006 18:27:16 -0500 Subject: [PATCH 42/45] Add loud warnings to deprecated lookup functions. Hopefully this will alert external driver maintainers. --- dix/dixutils.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/dix/dixutils.c b/dix/dixutils.c index 2859b96e9..084d2e4c5 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -281,39 +281,53 @@ dixLookupClient(ClientPtr *pClient, XID rid, ClientPtr client, Mask access) * These are deprecated compatibility functions and will be removed soon! * Please use the new dixLookup*() functions above. */ -_X_EXPORT WindowPtr +_X_EXPORT _X_DEPRECATED WindowPtr SecurityLookupWindow(XID id, ClientPtr client, Mask access_mode) { WindowPtr pWin; int i = dixLookupWindow(&pWin, id, client, access_mode); + static int warn = 1; + if (warn-- > 0) + ErrorF("Warning: LookupWindow()/SecurityLookupWindow() " + "are deprecated. Please convert your driver/module " + "to use dixLookupWindow().\n"); return (i == Success) ? pWin : NULL; } -_X_EXPORT WindowPtr +_X_EXPORT _X_DEPRECATED WindowPtr LookupWindow(XID id, ClientPtr client) { return SecurityLookupWindow(id, client, DixUnknownAccess); } -_X_EXPORT pointer +_X_EXPORT _X_DEPRECATED pointer SecurityLookupDrawable(XID id, ClientPtr client, Mask access_mode) { DrawablePtr pDraw; int i = dixLookupDrawable(&pDraw, id, client, M_DRAWABLE, access_mode); + static int warn = 1; + if (warn-- > 0) + ErrorF("Warning: LookupDrawable()/SecurityLookupDrawable() " + "are deprecated. Please convert your driver/module " + "to use dixLookupDrawable().\n"); return (i == Success) ? pDraw : NULL; } -_X_EXPORT pointer +_X_EXPORT _X_DEPRECATED pointer LookupDrawable(XID id, ClientPtr client) { return SecurityLookupDrawable(id, client, DixUnknownAccess); } -_X_EXPORT ClientPtr +_X_EXPORT _X_DEPRECATED ClientPtr LookupClient(XID id, ClientPtr client) { ClientPtr pClient; int i = dixLookupClient(&pClient, id, client, DixUnknownAccess); + static int warn = 1; + if (warn-- > 0) + ErrorF("Warning: LookupClient() is deprecated. Please convert your " + "driver/module to use dixLookupClient().\n"); return (i == Success) ? pClient : NULL; } From c92f7bef54fa737766d65fe32c200f405f39228c Mon Sep 17 00:00:00 2001 From: Kevin E Martin Date: Sat, 16 Dec 2006 12:01:49 -0500 Subject: [PATCH 43/45] For Xvfb, Xnest and Xprt, compile fbcmap.c with -DXFree86Server --- hw/vfb/Makefile.am | 1 + hw/xnest/Makefile.am | 1 + hw/xprint/Makefile.am | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/vfb/Makefile.am b/hw/vfb/Makefile.am index 2a0151f57..4f711fde7 100644 --- a/hw/vfb/Makefile.am +++ b/hw/vfb/Makefile.am @@ -21,6 +21,7 @@ Xvfb_LDFLAGS = AM_CFLAGS = -DHAVE_DIX_CONFIG_H \ -DNO_HW_ONLY_EXTS \ -DNO_MODULE_EXTS \ + -DXFree86Server \ $(XVFBMODULES_CFLAGS) \ $(DIX_CFLAGS) diff --git a/hw/xnest/Makefile.am b/hw/xnest/Makefile.am index d40d122f4..cce1fef94 100644 --- a/hw/xnest/Makefile.am +++ b/hw/xnest/Makefile.am @@ -51,6 +51,7 @@ Xnest_LDFLAGS = AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \ -DNO_HW_ONLY_EXTS \ + -DXFree86Server \ $(DIX_CFLAGS) \ $(XNESTMODULES_CFLAGS) diff --git a/hw/xprint/Makefile.am b/hw/xprint/Makefile.am index 27a7e30d1..d4f22d261 100644 --- a/hw/xprint/Makefile.am +++ b/hw/xprint/Makefile.am @@ -5,7 +5,8 @@ bin_PROGRAMS = Xprt Xprt_CFLAGS = @DIX_CFLAGS@ @XPRINT_CFLAGS@ \ -DXPRINT -DPRINT_ONLY_SERVER -D_XP_PRINT_SERVER_ \ -DXPRINTDIR=\"$(libdir)/X11/xserver\" \ - -DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX + -DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX \ + -DXFree86Server Xprt_LDFLAGS = -L$(top_srcdir) Xprt_LDADD = @XPRINT_LIBS@ ps/libps.la raster/libraster.la \ From a5fcf1e5e7452c9be82f63b6c2be2a25c4109523 Mon Sep 17 00:00:00 2001 From: James Steven Supancic III Date: Sat, 16 Dec 2006 12:02:38 -0500 Subject: [PATCH 44/45] Fix RENDER issues (bug #7555) and implement RENDER add/remove screen support (bug #8485). --- configure.ac | 2 +- hw/dmx/dmxextension.c | 133 +++++++++++++++++++++++++++++++++++++++++- hw/dmx/dmxinit.c | 2 +- hw/dmx/dmxpict.c | 85 ++++++++++++++++----------- hw/dmx/dmxpict.h | 2 + 5 files changed, 188 insertions(+), 36 deletions(-) diff --git a/configure.ac b/configure.ac index 002be624c..491bdd511 100644 --- a/configure.ac +++ b/configure.ac @@ -1007,7 +1007,7 @@ dnl --------------------------------------------------------------------------- dnl DMX DDX AC_MSG_CHECKING([whether to build Xdmx DDX]) -PKG_CHECK_MODULES([DMXMODULES], [xmuu xext x11 xrender xfont xi dmxproto xau $XDMCP_MODULES], [have_dmx=yes], [have_dmx=no]) +PKG_CHECK_MODULES([DMXMODULES], [xmuu xext x11 xrender xfixes xfont xi dmxproto xau $XDMCP_MODULES], [have_dmx=yes], [have_dmx=no]) if test "x$DMX" = xauto; then DMX="$have_dmx" fi diff --git a/hw/dmx/dmxextension.c b/hw/dmx/dmxextension.c index efcaca457..c12973bd5 100644 --- a/hw/dmx/dmxextension.c +++ b/hw/dmx/dmxextension.c @@ -1056,6 +1056,116 @@ static Bool dmxCompareScreens(DMXScreenInfo *new, DMXScreenInfo *old) return TRUE; } +#ifdef RENDER +/** Restore Render's picture */ +static void dmxBERestoreRenderPict(pointer value, XID id, pointer n) +{ + PicturePtr pPicture = value; /* The picture */ + DrawablePtr pDraw = pPicture->pDrawable; /* The picture's drawable */ + int scrnNum = (int)n; + + if (pDraw->pScreen->myNum != scrnNum) { + /* Picture not on the screen we are restoring*/ + return; + } + + if (pDraw->type == DRAWABLE_PIXMAP) { + PixmapPtr pPixmap = (PixmapPtr)pDraw; + + /* Create and restore the pixmap drawable */ + dmxBECreatePixmap(pPixmap); + dmxBERestorePixmap(pPixmap); + } + + dmxBECreatePicture(pPicture); +} + +/** Restore Render's glyphs */ +static void dmxBERestoreRenderGlyph(pointer value, XID id, pointer n) +{ + GlyphSetPtr glyphSet = value; + int scrnNum = (int)n; + dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); + DMXScreenInfo *dmxScreen = &dmxScreens[scrnNum]; + GlyphRefPtr table; + char *images; + Glyph *gids; + XGlyphInfo *glyphs; + char *pos; + int beret; + int len_images = 0; + int i; + int ctr; + + if (glyphPriv->glyphSets[scrnNum]) { + /* Only restore glyphs on the screen we are attaching */ + return; + } + + /* First we must create the glyph set on the backend. */ + if ((beret = dmxBECreateGlyphSet(scrnNum, glyphSet)) != Success) { + dmxLog(dmxWarning, + "\tdmxBERestoreRenderGlyph failed to create glyphset!\n"); + return; + } + + /* Now for the complex part, restore the glyph data */ + table = glyphSet->hash.table; + + /* We need to know how much memory to allocate for this part */ + for (i = 0; i < glyphSet->hash.hashSet->size; i++) { + GlyphRefPtr gr = &table[i]; + GlyphPtr gl = gr->glyph; + + if (!gl || gl == DeletedGlyph) continue; + len_images += gl->size - sizeof(gl->info); + } + + /* Now allocate the memory we need */ + images = ALLOCATE_LOCAL(len_images*sizeof(char)); + gids = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(Glyph)); + glyphs = ALLOCATE_LOCAL(glyphSet->hash.tableEntries*sizeof(XGlyphInfo)); + + memset(images, 0, len_images * sizeof(char)); + pos = images; + ctr = 0; + + /* Fill the allocated memory with the proper data */ + for (i = 0; i < glyphSet->hash.hashSet->size; i++) { + GlyphRefPtr gr = &table[i]; + GlyphPtr gl = gr->glyph; + + if (!gl || gl == DeletedGlyph) continue; + + /* First lets put the data into gids */ + gids[ctr] = gr->signature; + + /* Next do the glyphs data structures */ + glyphs[ctr].width = gl->info.width; + glyphs[ctr].height = gl->info.height; + glyphs[ctr].x = gl->info.x; + glyphs[ctr].y = gl->info.y; + glyphs[ctr].xOff = gl->info.xOff; + glyphs[ctr].yOff = gl->info.yOff; + + /* Copy the images from the DIX's data into the buffer */ + memcpy(pos, gl+1, gl->size - sizeof(gl->info)); + pos += gl->size - sizeof(gl->info); + ctr++; + } + + /* Now restore the glyph data */ + XRenderAddGlyphs(dmxScreen->beDisplay, glyphPriv->glyphSets[scrnNum], + gids,glyphs, glyphSet->hash.tableEntries, images, + len_images); + + /* Clean up */ + DEALLOCATE_LOCAL(len_images); + DEALLOCATE_LOCAL(gids); + DEALLOCATE_LOCAL(glyphs); +} +#endif + /** Reattach previously detached back-end screen. */ int dmxAttachScreen(int idx, DMXScreenAttributesPtr attr) { @@ -1174,6 +1284,20 @@ int dmxAttachScreen(int idx, DMXScreenAttributesPtr attr) /* Create window hierarchy (top down) */ dmxBECreateWindowTree(idx); +#ifdef RENDER + /* Restore the picture state for RENDER */ + for (i = currentMaxClients; --i >= 0; ) + if (clients[i]) + FindClientResourcesByType(clients[i],PictureType, + dmxBERestoreRenderPict,(pointer)idx); + + /* Restore the glyph state for RENDER */ + for (i = currentMaxClients; --i >= 0; ) + if (clients[i]) + FindClientResourcesByType(clients[i],GlyphSetType, + dmxBERestoreRenderGlyph,(pointer)idx); +#endif + /* Refresh screen by generating exposure events for all windows */ dmxForceExposures(idx); @@ -1362,8 +1486,15 @@ static void dmxBEDestroyResources(pointer value, XID id, RESTYPE type, #ifdef RENDER } else if ((type & TypeMask) == (PictureType & TypeMask)) { PicturePtr pPict = value; - if (pPict->pDrawable->pScreen->myNum == scrnNum) + if (pPict->pDrawable->pScreen->myNum == scrnNum) { + /* Free the pixmaps on the backend if needed */ + if (pPict->pDrawable->type == DRAWABLE_PIXMAP) { + PixmapPtr pPixmap = (PixmapPtr)(pPict->pDrawable); + dmxBESavePixmap(pPixmap); + dmxBEFreePixmap(pPixmap); + } dmxBEFreePicture((PicturePtr)value); + } } else if ((type & TypeMask) == (GlyphSetType & TypeMask)) { dmxBEFreeGlyphSet(pScreen, (GlyphSetPtr)value); #endif diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c index 9c5356ed5..1d3689c40 100644 --- a/hw/dmx/dmxinit.c +++ b/hw/dmx/dmxinit.c @@ -624,7 +624,7 @@ void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[]) } /* Make sure that the command-line arguments are sane. */ - if (dmxAddRemoveScreens && (!noRenderExtension || dmxGLXProxy)) { + if (dmxAddRemoveScreens && dmxGLXProxy) { /* Currently it is not possible to support GLX and Render * extensions with dynamic screen addition/removal due to the * state that each extension keeps, which cannot be restored. */ diff --git a/hw/dmx/dmxpict.c b/hw/dmx/dmxpict.c index 339692538..0f1782e51 100644 --- a/hw/dmx/dmxpict.c +++ b/hw/dmx/dmxpict.c @@ -223,6 +223,36 @@ Bool dmxBEFreeGlyphSet(ScreenPtr pScreen, GlyphSetPtr glyphSet) return FALSE; } +/** Create \a glyphSet on the backend screen number \a idx. */ +int dmxBECreateGlyphSet(int idx, GlyphSetPtr glyphSet) +{ + XRenderPictFormat *pFormat; + DMXScreenInfo *dmxScreen = &dmxScreens[idx]; + dmxGlyphPrivPtr glyphPriv = DMX_GET_GLYPH_PRIV(glyphSet); + PictFormatPtr pFmt = glyphSet->format; + int (*oldErrorHandler)(Display *, XErrorEvent *); + + pFormat = dmxFindFormat(dmxScreen, pFmt); + if (!pFormat) { + return BadMatch; + } + + dmxGlyphLastError = 0; + oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler); + + /* Catch when this fails */ + glyphPriv->glyphSets[idx] + = XRenderCreateGlyphSet(dmxScreen->beDisplay, pFormat); + + XSetErrorHandler(oldErrorHandler); + + if (dmxGlyphLastError) { + return dmxGlyphLastError; + } + + return Success; +} + /** Create a Glyph Set on each screen. Save the glyphset ID from each * screen in the Glyph Set's private structure. Fail if the format * requested is not available or if the Glyph Set cannot be created on @@ -235,12 +265,9 @@ static int dmxProcRenderCreateGlyphSet(ClientPtr client) ret = dmxSaveRenderVector[stuff->renderReqType](client); if (ret == Success) { - int (*oldErrorHandler)(Display *, XErrorEvent *); GlyphSetPtr glyphSet; dmxGlyphPrivPtr glyphPriv; int i; - PictFormatPtr pFmt; - XRenderPictFormat *pFormat; /* Look up glyphSet that was just created ???? */ /* Store glyphsets from backends in glyphSet->devPrivate ????? */ @@ -254,21 +281,16 @@ static int dmxProcRenderCreateGlyphSet(ClientPtr client) MAXSCREENSALLOC_RETURN(glyphPriv->glyphSets, BadAlloc); DMX_SET_GLYPH_PRIV(glyphSet, glyphPriv); - pFmt = SecurityLookupIDByType(client, stuff->format, PictFormatType, - DixReadAccess); - - oldErrorHandler = XSetErrorHandler(dmxGlyphErrorHandler); - for (i = 0; i < dmxNumScreens; i++) { DMXScreenInfo *dmxScreen = &dmxScreens[i]; + int beret; if (!dmxScreen->beDisplay) { glyphPriv->glyphSets[i] = 0; continue; } - pFormat = dmxFindFormat(dmxScreen, pFmt); - if (!pFormat) { + if ((beret = dmxBECreateGlyphSet(i, glyphSet)) != Success) { int j; /* Free the glyph sets we've allocated thus far */ @@ -278,30 +300,9 @@ static int dmxProcRenderCreateGlyphSet(ClientPtr client) /* Free the resource created by render */ FreeResource(stuff->gsid, RT_NONE); - ret = BadMatch; - break; - } - - /* Catch when this fails */ - glyphPriv->glyphSets[i] - = XRenderCreateGlyphSet(dmxScreen->beDisplay, pFormat); - - if (dmxGlyphLastError) { - int j; - - /* Free the glyph sets we've allocated thus far */ - for (j = 0; j < i; j++) - dmxBEFreeGlyphSet(screenInfo.screens[j], glyphSet); - - /* Free the resource created by render */ - FreeResource(stuff->gsid, RT_NONE); - - ret = dmxGlyphLastError; - break; + return beret; } } - - XSetErrorHandler(oldErrorHandler); } return ret; @@ -753,6 +754,20 @@ void dmxCreatePictureList(WindowPtr pWindow) } } +/** Create \a pPicture on the backend. */ +int dmxBECreatePicture(PicturePtr pPicture) +{ + dmxPictPrivPtr pPictPriv = DMX_GET_PICT_PRIV(pPicture); + + /* Create picutre on BE */ + pPictPriv->pict = dmxDoCreatePicture(pPicture); + + /* Flush changes to the backend server */ + dmxValidatePicture(pPicture, (1 << (CPLastBit+1)) - 1); + + return Success; +} + /** Create a picture. This function handles the CreatePicture * unwrapping/wrapping and calls dmxDoCreatePicture to actually create * the picture on the appropriate screen. */ @@ -853,7 +868,11 @@ int dmxChangePictureClip(PicturePtr pPicture, int clipType, /* The clip has already been changed into a region by the mi * routine called above. */ - if (pPicture->clientClip) { + if (clipType == CT_NONE) { + /* Disable clipping, show all */ + XFixesSetPictureClipRegion(dmxScreen->beDisplay, + pPictPriv->pict, 0, 0, None); + } else if (pPicture->clientClip) { RegionPtr pClip = pPicture->clientClip; BoxPtr pBox = REGION_RECTS(pClip); int nBox = REGION_NUM_RECTS(pClip); diff --git a/hw/dmx/dmxpict.h b/hw/dmx/dmxpict.h index 2ca04ed87..fe2a65959 100644 --- a/hw/dmx/dmxpict.h +++ b/hw/dmx/dmxpict.h @@ -112,7 +112,9 @@ extern void dmxTriFan(CARD8 op, INT16 xSrc, INT16 ySrc, int npoint, xPointFixed *points); +extern int dmxBECreateGlyphSet(int idx, GlyphSetPtr glyphSet); extern Bool dmxBEFreeGlyphSet(ScreenPtr pScreen, GlyphSetPtr glyphSet); +extern int dmxBECreatePicture(PicturePtr pPicture); extern Bool dmxBEFreePicture(PicturePtr pPicture); extern int dmxPictPrivateIndex; /**< Index for picture private data */ From 1b029fd896b76096905c516925ce0214fe14632c Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Mon, 18 Dec 2006 14:51:04 -0800 Subject: [PATCH 45/45] Xorg & Xserver man page updates for 1.2 release - Added -extension & +extension to Xserver man page - Changed Xorg synopsis from X11R6 to X11R7 - Clarified Xorg ancestry description - Moved Solaris to free/Open Source OS list - Removed references to MetroLink module loader & getconfig - Converted (1) to (__appmansuffix__) in a few more places - Replaced http://www.freedesktop.org/cvs/ with http://gitweb.freedesktop.org/ --- doc/Xserver.man.pre | 8 +++++ hw/xfree86/doc/man/Xorg.man.pre | 60 ++++++++++++++------------------- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre index d65acde6a..2457edf22 100644 --- a/doc/Xserver.man.pre +++ b/doc/Xserver.man.pre @@ -159,6 +159,14 @@ default state is platform and configuration specific. disables DPMS (display power management services). The default state is platform and configuration specific. .TP 8 +.BI \-extension extensionName +disables named extension. If an unknown extension name is specified, +a list of accepted extension names is printed. +.TP 8 +.BI \+extension extensionName +enables named extension. If an unknown extension name is specified, +a list of accepted extension names is printed. +.TP 8 .B \-f \fIvolume\fP sets feep (bell) volume (allowable range: 0-100). .TP 8 diff --git a/hw/xfree86/doc/man/Xorg.man.pre b/hw/xfree86/doc/man/Xorg.man.pre index 43f0518d2..c950e326b 100644 --- a/hw/xfree86/doc/man/Xorg.man.pre +++ b/hw/xfree86/doc/man/Xorg.man.pre @@ -1,7 +1,7 @@ .\" $XdotOrg: xserver/xorg/hw/xfree86/doc/man/Xorg.man.pre,v 1.3 2005/07/04 18:41:01 ajax Exp $ .TH __xservername__ __appmansuffix__ __vendorversion__ .SH NAME -__xservername__ - X11R6 X server +__xservername__ - X11R7 X server .SH SYNOPSIS .B __xservername__ .RI [\fB:\fP display ] @@ -13,30 +13,26 @@ is a full featured X server that was originally designed for UNIX and UNIX-like operating systems running on Intel x86 hardware. It now runs on a wider range of hardware and OS platforms. .PP -This work was derived from +This work was derived by the X.Org Foundation from the XFree86 Project's .I "XFree86\ 4.4rc2" -by the X.Org Foundation. -The XFree86 4.4rc2 release was originally derived from +release. +The XFree86 release was originally derived from .I "X386\ 1.2" by Thomas Roell which was contributed to X11R5 by Snitily Graphics -Consulting Service. The -.B __xservername__ -server architecture includes -among many other things a loadable module system derived from code -donated by Metro Link, Inc. The current __xservername__ release is compatible -with X11R6.6. +Consulting Service. .SH PLATFORMS .PP .B __xservername__ operates under a wide range of operating systems and hardware platforms. The Intel x86 (IA32) architecture is the most widely supported hardware -platform. Other hardware platforms include Compaq Alpha, Intel IA64, +platform. Other hardware platforms include Compaq Alpha, Intel IA64, AMD64, SPARC and PowerPC. The most widely supported operating systems are the -free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD and -OpenBSD. Commercial UNIX operating systems such as Solaris (x86) and +free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD, +OpenBSD, and Solaris. Commercial UNIX operating systems such as UnixWare are also supported. Other supported operating systems include LynxOS, and GNU Hurd. Darwin and Mac OS X are supported with the -XDarwin(1) X server. Win32/Cygwin is supported with the XWin X server. +XDarwin(__appmansuffix__) X server. Win32/Cygwin is supported with the +XWin(__appmansuffix__) X server. .PP .SH "NETWORK CONNECTIONS" .B __xservername__ @@ -119,13 +115,14 @@ one way, the highest precedence mechanism is used. The list of mechanisms is ordered from highest precedence to lowest. Note that not all parameters can be supplied via all methods. The available command line options and environment variables (and some defaults) are described here and in -the Xserver(1) manual page. Most configuration file parameters, with -their defaults, are described in the __xconfigfile__(__filemansuffix__) manual -page. Driver and module specific configuration parameters are described -in the relevant driver or module manual page. +the Xserver(__appmansuffix__) manual page. Most configuration file +parameters, with their defaults, are described in the +__xconfigfile__(__filemansuffix__) manual page. Driver and module specific +configuration parameters are described in the relevant driver or module +manual page. .PP -In addition to the normal server options described in the Xserver(1) -manual page, +In addition to the normal server options described in the +Xserver(__appmansuffix__) manual page, .B __xservername__ accepts the following command line switches: .TP 8 @@ -385,7 +382,8 @@ options. When this option is specified, the .B __xservername__ server scans the PCI bus, and prints out some information about each -device that was detected. See also scanpci(1) and pcitweak(1). +device that was detected. See also scanpci(__appmansuffix__) +and pcitweak(__appmansuffix__). .TP 8 .BI \-screen " screen-name" Use the __xconfigfile__(__filemansuffix__) file @@ -508,13 +506,12 @@ for its initial setup. Refer to the __xconfigfile__(__filemansuffix__) manual page for information about the format of this file. .PP -Starting with version 4.4, .B __xservername__ has a mechanism for automatically generating a built-in configuration at run-time when no .B __xconfigfile__ file is present. The current version of this automatic configuration -mechanism works in three ways. +mechanism works in two ways. .PP The first is via enhancements that have made many components of the .B __xconfigfile__ @@ -523,14 +520,7 @@ reasonably deduced doesn't need to be specified explicitly, greatly reducing the amount of built-in configuration information that needs to be generated at run-time. .PP -The second is to use an external utility called getconfig(1), when -available, to use meta-configuration information to generate a suitable -configuration for the primary video device. The meta-configuration -information can be updated to allow an existing installation to get the -best out of new hardware or to work around bugs that are found -post-release. -.PP -The third is to have "safe" fallbacks for most configuration information. +The second is to have "safe" fallbacks for most configuration information. This maximises the likelihood that the .B __xservername__ server will start up in some usable configuration even when information @@ -644,7 +634,7 @@ __xservername__ was originally based on XFree86 4.4rc2. That was originally based on \fIX386 1.2\fP by Thomas Roell, which was contributed to the then X Consortium's X11R5 distribution by SGCS. .PP -__xservername__ is released by the X.org Foundation. +__xservername__ is released by the X.Org Foundation. .PP The project that became XFree86 was originally founded in 1992 by David Dawes, Glenn Lai, Jim Tsillas and David Wexelblat. @@ -685,9 +675,9 @@ Orest Zborowski \fIorestz@eskimo.com\fP .RE .PP __xservername__ source is available from the FTP server -\fI\fP, and from the X.org -server \fI\fP. Documentation and other -information can be found from the X.org web site +\fI\fP, and from the X.Org +server \fI\fP. Documentation and other +information can be found from the X.Org web site \fI\fP. .SH LEGAL