diff --git a/modules/c++/nitf/source/ByteProvider.cpp b/modules/c++/nitf/source/ByteProvider.cpp index 747a8b54d..cbff5e574 100644 --- a/modules/c++/nitf/source/ByteProvider.cpp +++ b/modules/c++/nitf/source/ByteProvider.cpp @@ -243,14 +243,14 @@ void ByteProvider::getFileLayout(nitf::Record& inRecord, std::vector desSubheaderLengths(numDESs); std::vector desDataLengths(numDESs); - for (size_t ii = 0; ii < numDESs; ++ii) { nitf::DESegment deSegment = record.getDataExtensions()[ii]; nitf::DESubheader subheader = deSegment.getSubheader(); nitf::Uint32 userSublen; + const size_t prevSize = byteStream->getSize(); writer.writeDESubheader(subheader, userSublen, record.getVersion()); - desSubheaderLengths[ii] = byteStream->getSize(); + desSubheaderLengths[ii] = byteStream->getSize() - prevSize; // Write data const PtrAndLength& curData(desData[ii]);