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

Even Rouault even.rouault at spatialys.com
Wed Nov 19 17:43:51 PST 2025


Hi Brad,

yes you're right. A 19-year old bug now gone in 
https://github.com/OSGeo/gdal/pull/13450. Perhaps the erroneous addition 
of the NUL byte was to imitate oldish Kakadu version since the jpylyzer 
manual mentions that about their 'nullbyte' option?

Even

Le 20/11/2025 à 01:56, Brad Hards via gdal-dev a écrit :
>
> 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
>
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/gdal-dev

-- 
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20251120/047b0fd3/attachment.htm>


More information about the gdal-dev mailing list