Wed, 30 Oct 2013 15:35:25 +0100
8027252: Crash in interpreter because get_unsigned_2_byte_index_at_bcp reads 4 bytes
Summary: Use 2-byte loads to load indexes from the byte code stream to avoid out of bounds reads.
Reviewed-by: coleenp, sspitsyn
jprovino@4165 | 1 | # |
johnc@5078 | 2 | # Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. |
jprovino@4165 | 3 | # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
jprovino@4165 | 4 | # |
jprovino@4165 | 5 | # This code is free software; you can redistribute it and/or modify it |
jprovino@4165 | 6 | # under the terms of the GNU General Public License version 2 only, as |
jprovino@4165 | 7 | # published by the Free Software Foundation. |
jprovino@4165 | 8 | # |
jprovino@4165 | 9 | # This code is distributed in the hope that it will be useful, but WITHOUT |
jprovino@4165 | 10 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
jprovino@4165 | 11 | # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
jprovino@4165 | 12 | # version 2 for more details (a copy is included in the LICENSE file that |
jprovino@4165 | 13 | # accompanied this code). |
jprovino@4165 | 14 | # |
jprovino@4165 | 15 | # You should have received a copy of the GNU General Public License version |
jprovino@4165 | 16 | # 2 along with this work; if not, write to the Free Software Foundation, |
jprovino@4165 | 17 | # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
jprovino@4165 | 18 | # |
jprovino@4165 | 19 | # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
jprovino@4165 | 20 | # or visit www.oracle.com if you need additional information or have any |
jprovino@4165 | 21 | # questions. |
sla@5237 | 22 | # |
jprovino@4165 | 23 | # |
jprovino@4165 | 24 | ifeq ($(INCLUDE_JVMTI), false) |
jprovino@4165 | 25 | CXXFLAGS += -DINCLUDE_JVMTI=0 |
jprovino@4165 | 26 | CFLAGS += -DINCLUDE_JVMTI=0 |
jprovino@4165 | 27 | |
jprovino@5187 | 28 | Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \ |
jprovino@4165 | 29 | jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp \ |
jprovino@4165 | 30 | jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \ |
jprovino@4829 | 31 | jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp \ |
jprovino@4829 | 32 | jvmtiClassFileReconstituter.cpp |
jprovino@4165 | 33 | endif |
jprovino@4165 | 34 | |
jprovino@4165 | 35 | ifeq ($(INCLUDE_FPROF), false) |
jprovino@4165 | 36 | CXXFLAGS += -DINCLUDE_FPROF=0 |
jprovino@4165 | 37 | CFLAGS += -DINCLUDE_FPROF=0 |
jprovino@4165 | 38 | |
jprovino@4165 | 39 | Src_Files_EXCLUDE += fprofiler.cpp |
jprovino@4165 | 40 | endif |
jprovino@4165 | 41 | |
jprovino@4165 | 42 | ifeq ($(INCLUDE_VM_STRUCTS), false) |
jprovino@4165 | 43 | CXXFLAGS += -DINCLUDE_VM_STRUCTS=0 |
jprovino@4165 | 44 | CFLAGS += -DINCLUDE_VM_STRUCTS=0 |
jprovino@4165 | 45 | |
jprovino@4165 | 46 | Src_Files_EXCLUDE += vmStructs.cpp |
jprovino@4165 | 47 | endif |
jprovino@4165 | 48 | |
jprovino@4165 | 49 | ifeq ($(INCLUDE_JNI_CHECK), false) |
jprovino@4165 | 50 | CXXFLAGS += -DINCLUDE_JNI_CHECK=0 |
jprovino@4165 | 51 | CFLAGS += -DINCLUDE_JNI_CHECK=0 |
jprovino@4165 | 52 | |
jprovino@4165 | 53 | Src_Files_EXCLUDE += jniCheck.cpp |
jprovino@4165 | 54 | endif |
jprovino@4165 | 55 | |
jprovino@4165 | 56 | ifeq ($(INCLUDE_SERVICES), false) |
jprovino@4165 | 57 | CXXFLAGS += -DINCLUDE_SERVICES=0 |
jprovino@4165 | 58 | CFLAGS += -DINCLUDE_SERVICES=0 |
jprovino@4165 | 59 | |
jprovino@4165 | 60 | Src_Files_EXCLUDE += heapDumper.cpp heapInspection.cpp \ |
jprovino@4165 | 61 | attachListener_linux.cpp attachListener.cpp |
jprovino@4165 | 62 | endif |
jprovino@4165 | 63 | |
jprovino@4165 | 64 | ifeq ($(INCLUDE_MANAGEMENT), false) |
jprovino@4165 | 65 | CXXFLAGS += -DINCLUDE_MANAGEMENT=0 |
jprovino@4165 | 66 | CFLAGS += -DINCLUDE_MANAGEMENT=0 |
jprovino@4165 | 67 | endif |
jprovino@4165 | 68 | |
jprovino@4165 | 69 | ifeq ($(INCLUDE_CDS), false) |
jprovino@4165 | 70 | CXXFLAGS += -DINCLUDE_CDS=0 |
jprovino@4165 | 71 | CFLAGS += -DINCLUDE_CDS=0 |
jprovino@4165 | 72 | |
jprovino@4720 | 73 | Src_Files_EXCLUDE += filemap.cpp metaspaceShared.cpp |
jprovino@4165 | 74 | endif |
jprovino@4165 | 75 | |
jprovino@4542 | 76 | ifeq ($(INCLUDE_ALL_GCS), false) |
jprovino@4542 | 77 | CXXFLAGS += -DINCLUDE_ALL_GCS=0 |
jprovino@4542 | 78 | CFLAGS += -DINCLUDE_ALL_GCS=0 |
jprovino@4165 | 79 | |
jprovino@4165 | 80 | Src_Files_EXCLUDE += \ |
jmasa@4196 | 81 | cmsAdaptiveSizePolicy.cpp cmsCollectorPolicy.cpp \ |
jprovino@4626 | 82 | cmsGCAdaptivePolicyCounters.cpp cmsLockVerifier.cpp compactibleFreeListSpace.cpp \ |
jmasa@4196 | 83 | concurrentMarkSweepGeneration.cpp concurrentMarkSweepThread.cpp \ |
johnc@5078 | 84 | freeChunk.cpp adaptiveFreeList.cpp promotionInfo.cpp vmCMSOperations.cpp \ |
johnc@5078 | 85 | collectionSetChooser.cpp concurrentG1Refine.cpp concurrentG1RefineThread.cpp \ |
johnc@5078 | 86 | concurrentMark.cpp concurrentMarkThread.cpp dirtyCardQueue.cpp g1AllocRegion.cpp \ |
johnc@5078 | 87 | g1BlockOffsetTable.cpp g1CardCounts.cpp g1CollectedHeap.cpp g1CollectorPolicy.cpp \ |
johnc@5078 | 88 | g1ErgoVerbose.cpp g1GCPhaseTimes.cpp g1HRPrinter.cpp g1HotCardCache.cpp g1Log.cpp \ |
johnc@5078 | 89 | g1MMUTracker.cpp g1MarkSweep.cpp g1MemoryPool.cpp g1MonitoringSupport.cpp \ |
tschatzl@5204 | 90 | g1RemSet.cpp g1RemSetSummary.cpp g1SATBCardTableModRefBS.cpp g1_globals.cpp heapRegion.cpp \ |
tschatzl@5773 | 91 | g1BiasedArray.cpp heapRegionRemSet.cpp heapRegionSeq.cpp heapRegionSet.cpp heapRegionSets.cpp \ |
johnc@5078 | 92 | ptrQueue.cpp satbQueue.cpp sparsePRT.cpp survRateGroup.cpp vm_operations_g1.cpp \ |
johnc@5078 | 93 | adjoiningGenerations.cpp adjoiningVirtualSpaces.cpp asPSOldGen.cpp asPSYoungGen.cpp \ |
johnc@5078 | 94 | cardTableExtension.cpp gcTaskManager.cpp gcTaskThread.cpp objectStartArray.cpp \ |
johnc@5078 | 95 | parallelScavengeHeap.cpp parMarkBitMap.cpp pcTasks.cpp psAdaptiveSizePolicy.cpp \ |
johnc@5078 | 96 | psCompactionManager.cpp psGCAdaptivePolicyCounters.cpp psGenerationCounters.cpp \ |
johnc@5078 | 97 | psMarkSweep.cpp psMarkSweepDecorator.cpp psMemoryPool.cpp psOldGen.cpp \ |
johnc@5078 | 98 | psParallelCompact.cpp psPromotionLAB.cpp psPromotionManager.cpp psScavenge.cpp \ |
johnc@5078 | 99 | psTasks.cpp psVirtualspace.cpp psYoungGen.cpp vmPSOperations.cpp asParNewGeneration.cpp \ |
johnc@5078 | 100 | parCardTableModRefBS.cpp parGCAllocBuffer.cpp parNewGeneration.cpp mutableSpace.cpp \ |
johnc@5078 | 101 | gSpaceCounters.cpp allocationStats.cpp spaceCounters.cpp gcAdaptivePolicyCounters.cpp \ |
dholmes@5689 | 102 | mutableNUMASpace.cpp immutableSpace.cpp yieldingWorkGroup.cpp hSpaceCounters.cpp |
sla@5237 | 103 | endif |
jprovino@4165 | 104 | |
jprovino@4165 | 105 | ifeq ($(INCLUDE_NMT), false) |
jprovino@4165 | 106 | CXXFLAGS += -DINCLUDE_NMT=0 |
jprovino@4165 | 107 | CFLAGS += -DINCLUDE_NMT=0 |
jprovino@4165 | 108 | |
jprovino@4165 | 109 | Src_Files_EXCLUDE += \ |
jprovino@4165 | 110 | memBaseline.cpp memPtr.cpp memRecorder.cpp memReporter.cpp memSnapshot.cpp memTrackWorker.cpp \ |
jprovino@4165 | 111 | memTracker.cpp nmtDCmd.cpp |
jprovino@4165 | 112 | endif |
sla@5237 | 113 | |
sla@5237 | 114 | -include $(HS_ALT_MAKE)/excludeSrc.make |
sla@5308 | 115 | |
sla@5308 | 116 | .PHONY: $(HS_ALT_MAKE)/excludeSrc.make |