]> granicus.if.org Git - libjpeg-turbo/commitdiff
Fix a really subtle issue whereby an invalid free() could occur if a program called...
authorDRC <dcommander@users.sourceforge.net>
Wed, 30 Oct 2013 22:21:06 +0000 (22:21 +0000)
committerDRC <dcommander@users.sourceforge.net>
Wed, 30 Oct 2013 22:21:06 +0000 (22:21 +0000)
git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1065 632fc199-4ca6-4c93-a231-07263d6284db

turbojpeg.c

index b0acc55a87860df05916f573e33874a7bb8dc5f0..8dcc3b7269ae9092ea2856bdb62de98d1e234219 100644 (file)
@@ -710,16 +710,16 @@ DLLEXPORT int DLLCALL tjEncodeYUV3(tjhandle handle, unsigned char *srcBuf,
        unsigned char *rgbBuf=NULL;
        #endif
 
-       getinstance(handle);
-       if((this->init&COMPRESS)==0)
-               _throw("tjEncodeYUV3(): Instance has not been initialized for compression");
-
        for(i=0; i<MAX_COMPONENTS; i++)
        {
                tmpbuf[i]=NULL;  _tmpbuf[i]=NULL;
                tmpbuf2[i]=NULL;  _tmpbuf2[i]=NULL;  outbuf[i]=NULL;
        }
 
+       getinstance(handle);
+       if((this->init&COMPRESS)==0)
+               _throw("tjEncodeYUV3(): Instance has not been initialized for compression");
+
        if(srcBuf==NULL || width<=0 || pitch<0 || height<=0 || pixelFormat<0
                || pixelFormat>=TJ_NUMPF || dstBuf==NULL || pad<0 || !isPow2(pad)
                || subsamp<0 || subsamp>=NUMSUBOPT)
@@ -1105,15 +1105,15 @@ DLLEXPORT int DLLCALL tjDecompressToYUV2(tjhandle handle,
        JSAMPLE *_tmpbuf=NULL, *ptr=dstBuf;  JSAMPROW *tmpbuf[MAX_COMPONENTS];
        int dctsize;
 
-       getinstance(handle);
-       if((this->init&DECOMPRESS)==0)
-               _throw("tjDecompressToYUV2(): Instance has not been initialized for decompression");
-
        for(i=0; i<MAX_COMPONENTS; i++)
        {
                tmpbuf[i]=NULL;  outbuf[i]=NULL;
        }
 
+       getinstance(handle);
+       if((this->init&DECOMPRESS)==0)
+               _throw("tjDecompressToYUV2(): Instance has not been initialized for decompression");
+
        if(jpegBuf==NULL || jpegSize<=0 || dstBuf==NULL || width<0 || pad<1
                || !isPow2(pad) || height<0)
                _throw("tjDecompressToYUV2(): Invalid argument");