Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "../../../include/fxcodec/fx_codec.h" | 7 #include "../../../include/fxcodec/fx_codec.h" |
| 8 #include "codec_int.h" | 8 #include "codec_int.h" |
| 9 CCodec_ModuleMgr::CCodec_ModuleMgr() | 9 CCodec_ModuleMgr::CCodec_ModuleMgr() |
| 10 { | 10 { |
| 11 m_pBasicModule = FX_NEW CCodec_BasicModule; | 11 m_pBasicModule = FX_NEW CCodec_BasicModule; |
| 12 m_pFaxModule = FX_NEW CCodec_FaxModule; | 12 m_pFaxModule = FX_NEW CCodec_FaxModule; |
| 13 m_pJpegModule = FX_NEW CCodec_JpegModule; | 13 m_pJpegModule = FX_NEW CCodec_JpegModule; |
| 14 m_pJpxModule = FX_NEW CCodec_JpxModule; | 14 m_pJpxModule = FX_NEW CCodec_JpxModule; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 112 dest_height = -dest_height; | 112 dest_height = -dest_height; |
| 113 } | 113 } |
| 114 v_DownScale(dest_width, dest_height); | 114 v_DownScale(dest_width, dest_height); |
| 115 if (m_pDataCache) { | 115 if (m_pDataCache) { |
| 116 if (m_pDataCache->m_Height == m_OutputHeight && m_pDataCache->m_Width == m_OutputWidth) { | 116 if (m_pDataCache->m_Height == m_OutputHeight && m_pDataCache->m_Width == m_OutputWidth) { |
| 117 return; | 117 return; |
| 118 } | 118 } |
| 119 FX_Free(m_pDataCache); | 119 FX_Free(m_pDataCache); |
| 120 m_pDataCache = NULL; | 120 m_pDataCache = NULL; |
| 121 } | 121 } |
| 122 m_pDataCache = (CCodec_ImageDataCache*)FXMEM_DefaultAlloc( | 122 m_pDataCache = (CCodec_ImageDataCache*)FX_AllocNL(FX_BYTE, sizeof(CCodec_Ima geDataCache) + m_Pitch * m_OutputHeight); |
|
palmer
2014/07/07 19:17:53
Potential integer overflow here.
| |
| 123 sizeof(CCodec_ImageDataCache) + m_Pitch * m_OutputHeight, FXMEM_NONLEAVE); | |
| 124 if (m_pDataCache == NULL) { | 123 if (m_pDataCache == NULL) { |
| 125 return; | 124 return; |
| 126 } | 125 } |
| 127 m_pDataCache->m_Height = m_OutputHeight; | 126 m_pDataCache->m_Height = m_OutputHeight; |
| 128 m_pDataCache->m_Width = m_OutputWidth; | 127 m_pDataCache->m_Width = m_OutputWidth; |
| 129 m_pDataCache->m_nCachedLines = 0; | 128 m_pDataCache->m_nCachedLines = 0; |
| 130 } | 129 } |
| 131 FX_BOOL CCodec_BasicModule::RunLengthEncode(const FX_BYTE* src_buf, FX_DWORD src _size, FX_LPBYTE& dest_buf, | 130 FX_BOOL CCodec_BasicModule::RunLengthEncode(const FX_BYTE* src_buf, FX_DWORD src _size, FX_LPBYTE& dest_buf, |
| 132 FX_DWORD& dest_size) | 131 FX_DWORD& dest_size) |
| 133 { | 132 { |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 438 CCodec_RLScanlineDecoder* pRLScanlineDecoder = FX_NEW CCodec_RLScanlineDecod er; | 437 CCodec_RLScanlineDecoder* pRLScanlineDecoder = FX_NEW CCodec_RLScanlineDecod er; |
| 439 if (pRLScanlineDecoder == NULL) { | 438 if (pRLScanlineDecoder == NULL) { |
| 440 return NULL; | 439 return NULL; |
| 441 } | 440 } |
| 442 if (!pRLScanlineDecoder->Create(src_buf, src_size, width, height, nComps, bp c)) { | 441 if (!pRLScanlineDecoder->Create(src_buf, src_size, width, height, nComps, bp c)) { |
| 443 delete pRLScanlineDecoder; | 442 delete pRLScanlineDecoder; |
| 444 return NULL; | 443 return NULL; |
| 445 } | 444 } |
| 446 return pRLScanlineDecoder; | 445 return pRLScanlineDecoder; |
| 447 } | 446 } |
| OLD | NEW |