| Index: Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
 | 
| diff --git a/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp b/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
 | 
| index f08295962ff2f8a2c87379fa46d3d5a2a71b6e01..17d52fbe8bd7b564342433fcdd2a4d5113d136c2 100644
 | 
| --- a/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
 | 
| +++ b/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
 | 
| @@ -31,6 +31,7 @@
 | 
|  #include "config.h"
 | 
|  #include "platform/image-decoders/bmp/BMPImageDecoder.h"
 | 
|  
 | 
| +#include "platform/image-decoders/FastSharedBufferReader.h"
 | 
|  #include "wtf/PassOwnPtr.h"
 | 
|  
 | 
|  namespace blink {
 | 
| @@ -100,8 +101,12 @@ bool BMPImageDecoder::processFileHeader(size_t& imgDataOffset)
 | 
|      ASSERT(!m_decodedOffset);
 | 
|      if (m_data->size() < sizeOfFileHeader)
 | 
|          return false;
 | 
| -    const uint16_t fileType = (m_data->data()[0] << 8) | static_cast<uint8_t>(m_data->data()[1]);
 | 
| -    imgDataOffset = readUint32(10);
 | 
| +
 | 
| +    char buffer[sizeOfFileHeader];
 | 
| +    FastSharedBufferReader fastReader(m_data);
 | 
| +    const char* fileHeader = fastReader.getConsecutiveData(0, sizeOfFileHeader, buffer);
 | 
| +    const uint16_t fileType = (fileHeader[0] << 8) | static_cast<uint8_t>(fileHeader[1]);
 | 
| +    imgDataOffset = BMPImageReader::readUint32(&fileHeader[10]);
 | 
|      m_decodedOffset = sizeOfFileHeader;
 | 
|  
 | 
|      // See if this is a bitmap filetype we understand.
 | 
| 
 |