[gdal-dev] Trailing null in XML metadata in GMLJP2

Brad Hards bradh at frogmouth.net
Wed Nov 19 16:56:55 PST 2025


It looks like there is a trailing null in the character data written inside the XML box in JPEG 
2000 (only tested with OpenJPEG). 

I'm seeing a validation error in jpylyzer about not well formed XML, which I think is 
probably related to this. Or at least goes away with this change:

*diff --git a/gcore/gdaljp2metadata.cpp b/gcore/gdaljp2metadata.cpp* 
*index 439b7e6625..a247cad9f8 100644* 
*--- a/gcore/gdaljp2metadata.cpp* 
*+++ b/gcore/gdaljp2metadata.cpp* 
@@ -3333,7 +3333,7 @@ 
GDALJP2Metadata::CreateGDALMultiDomainMetadataXMLBox(GDALDataset *poSrcDS, 
 
    GDALJP2Box *poBox = new GDALJP2Box(); 
    poBox->SetType("xml "); -    poBox->SetWritableData(static_cast<int>(strlen(pszXML) + 1), 
+    poBox->SetWritableData(static_cast<int>(strlen(pszXML)), 
                           reinterpret_cast<const GByte *>(pszXML)); 
    CPLFree(pszXML); 

However that +1 looks deliberate. So is that trailing null intentional, in that its required for 
some interoperability or backwards compatibility reason, even though it isn't strictly 
allowed in XML?

Brad

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20251120/881a62a4/attachment.htm>


More information about the gdal-dev mailing list