fix memcpy bytes size

v0.27.3
Michał Walenciak 8 years ago
parent b343064afc
commit 1429ae843a

@ -300,18 +300,18 @@ void printIFD(Exiv2::BasicIo& io, std::ostream& out, Exiv2::PrintStructureOption
: is8ByteType(type) ? 8 : is8ByteType(type) ? 8
: 1; : 1;
Exiv2::DataBuf buf(size*count + pad); // allocate a buffer Exiv2::DataBuf buf(size * count + pad);
// big data? Use 'data' as pointer to real data // big data? Use 'data' as pointer to real data
if ( count*size > 8 ) // read into buffer if ( count*size > 8 ) // read into buffer
{ {
size_t restore = io.tell(); // save size_t restore = io.tell(); // save
io.seek(data, Exiv2::BasicIo::beg); // position io.seek(data, Exiv2::BasicIo::beg); // position
io.read(buf.pData_,count*size); // read io.read(buf.pData_, count * size); // read
io.seek(restore, Exiv2::BasicIo::beg); // restore io.seek(restore, Exiv2::BasicIo::beg); // restore
} }
else // use 'data' as data :) else // use 'data' as data :)
std::memcpy(buf.pData_, &data, 8); // copy data std::memcpy(buf.pData_, &data, count * size); // copy data
if ( bPrint ) if ( bPrint )
{ {

Loading…
Cancel
Save