1 /* 2 * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without modification, 6 * are permitted provided that the following conditions are met: 7 * 8 * Redistributions of source code must retain the above copyright notice, 9 * this list of conditions and the following disclaimer. 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * Neither the name of Intel Corporation nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 */ 28 /* 29 * Bug 113: 30 * 31 * SUMMARY: Unexpected dereference of Index reference immediately passed to Method 32 */ 33 Method (ME79, 6, NotSerialized) 34 { 35 Debug = Arg0 36 Debug = Arg1 37 Debug = Arg2 38 Debug = Arg3 39 Debug = Arg4 40 Debug = Arg5 41 Debug = "Test 0" 42 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 43 Store ((Arg0 + 0x01), Local5) 44 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 45 Debug = "Test 1" 46 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 47 Store ((Arg1 + 0x01), Local5) 48 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 49 Debug = "Test 2" 50 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 51 Store ((Arg2 + 0x01), Local5) 52 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 53 Debug = "Test 3" 54 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 55 Store ((Arg3 + 0x01), Local5) 56 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 57 Debug = "Test 4" 58 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 59 Store ((Arg4 + 0x01), Local5) 60 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 61 Debug = "Test 5" 62 CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00) 63 Store ((Arg5 + 0x01), Local5) 64 CH04 (__METHOD__, 0x01, 0x2F, 0x00, __LINE__, 0x00, 0x00) /* AE_AML_OPERAND_TYPE */ 65 } 66 67 Method (ME7A, 0, Serialized) 68 { 69 Name (P000, Package (0x05) 70 { 71 0x00, 72 0x01, 73 0x02, 74 0x03, 75 0x04 76 }) 77 Name (P001, Package (0x05) 78 { 79 0x10, 80 0x11, 81 0x12, 82 0x13, 83 0x14 84 }) 85 Name (P002, Package (0x05) 86 { 87 0x20, 88 0x21, 89 0x22, 90 0x23, 91 0x24 92 }) 93 Name (P003, Package (0x05) 94 { 95 0x30, 96 0x31, 97 0x32, 98 0x33, 99 0x34 100 }) 101 Name (P004, Package (0x05) 102 { 103 0x40, 104 0x41, 105 0x42, 106 0x43, 107 0x44 108 }) 109 Store (P002 [0x02], Local0) 110 Local1 = P003 [0x03] 111 Local3 = Local2 = P004 [0x04] 112 ME79 (P000 [0x00], Local4 = P001 [0x01], Local0, Local1, Local2, 113 Local3) 114 Debug = Local4 115 } 116