Mercurial > hg > release > icedtea6-1.6
view patches/security/20100330/6909597.patch @ 1723:d48a4f542e7d
Add new security patches and fix srcdir!=builddir issues.
2009-03-30 Andrew John Hughes <ahughes@redhat.com>
* patches/icedtea-systemtap.patch:
Moved to HotSpot-specific patch tree.
* Makefile.am: Add new security patches
and add $(HSBUILD) to systemtap patch.
Put copied OpenJDK files in openjdk-copy
rather than a duplicate rt directory
in the build tree.
* NEWS: List new security patches.
* patches/hotspot/default/systemtap.patch:
From patches/icedtea-systemtap.patch.
* patches/hotspot/original/icedtea-format.patch,
* patches/hotspot/original/systemtap.patch:
Added for original HotSpot build.
* patches/security/20100330/6626217.patch,
* patches/security/20100330/6633872.patch,
* patches/security/20100330/6639665.patch,
* patches/security/20100330/6736390.patch,
* patches/security/20100330/6745393.patch,
* patches/security/20100330/6887703.patch,
* patches/security/20100330/6888149.patch,
* patches/security/20100330/6892265.patch,
* patches/security/20100330/6893947.patch,
* patches/security/20100330/6893954.patch,
* patches/security/20100330/6898622.patch,
* patches/security/20100330/6898739.patch,
* patches/security/20100330/6899653.patch,
* patches/security/20100330/6902299.patch,
* patches/security/20100330/6904691.patch,
* patches/security/20100330/6909597.patch,
* patches/security/20100330/6910590.patch,
* patches/security/20100330/6914823.patch,
* patches/security/20100330/6914866.patch,
* patches/security/20100330/6932480.patch,
* patches/security/20100330/hotspot/default/6894807.patch,
* patches/security/20100330/hotspot/original/6894807.patch:
New security and hardening patches
http://www.oracle.com/technology/deploy/security/critical-patch-updates/javacpumar2010.html
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Tue, 30 Mar 2010 23:04:54 +0100 |
parents | |
children |
line wrap: on
line source
--- openjdk.orig/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2009-12-23 19:18:23.132000000 +0300 +++ openjdk/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2009-12-23 19:18:22.515000000 +0300 @@ -258,6 +258,7 @@ typedef struct pixelBufferStruct { jobject hpixelObject; // Usually a DataBuffer bank as a byte array + unsigned int byteBufferLength; union pixptr { INT32 *ip; // Pinned buffer pointer, as 32-bit ints unsigned char *bp; // Pinned buffer pointer, as bytes @@ -270,6 +271,7 @@ */ static void initPixelBuffer(pixelBufferPtr pb) { pb->hpixelObject = NULL; + pb->byteBufferLength = 0; pb->buf.ip = NULL; } @@ -279,13 +281,13 @@ */ static int setPixelBuffer(JNIEnv *env, pixelBufferPtr pb, jobject obj) { pb->hpixelObject = (*env)->NewGlobalRef(env, obj); - if (pb->hpixelObject == NULL) { JNU_ThrowByName( env, "java/lang/OutOfMemoryError", "Setting Pixel Buffer"); return NOT_OK; } + pb->byteBufferLength = (*env)->GetArrayLength(env, pb->hpixelObject); return OK; } @@ -302,6 +304,7 @@ unpinPixelBuffer(env, pb); (*env)->DeleteGlobalRef(env, pb->hpixelObject); pb->hpixelObject = NULL; + pb->byteBufferLength = 0; } } @@ -1806,6 +1809,7 @@ boolean orderedBands = TRUE; imageIODataPtr data = (imageIODataPtr) ptr; j_decompress_ptr cinfo; + unsigned int numBytes; /* verify the inputs */ @@ -2030,15 +2034,22 @@ // scanline buffer into the raster. in = scanLinePtr + (sourceXStart * cinfo->num_components); if (pixelLimit > in) { - memcpy(out, in, pixelLimit - in); + numBytes = pixelLimit - in; + if (numBytes > data->pixelBuf.byteBufferLength) { + numBytes = data->pixelBuf.byteBufferLength; + } + memcpy(out, in, numBytes); } } else { + numBytes = numBands; for (in = scanLinePtr+sourceXStart*cinfo->num_components; - in < pixelLimit; + in < pixelLimit && + numBytes <= data->pixelBuf.byteBufferLength; in += pixelStride) { for (i = 0; i < numBands; i++) { *out++ = *(in+bands[i]); } + numBytes += numBands; } }