The 'line' member of 'xmlNode' is 16-bits long and useless
for generating error message for large XML files.
The author of 'libxml2' has been unhelpful, so I wrote a short
ABI safe patch that resolves the problem. I'm posting this
report to save others aggravation.
See the GNOME bug report for discussion and details.
'libxml2' compiled with the patch will work for both
applications compiled and linked against the regular
'libxml2.so' and programs compiled and linked with the patched
'libxml2'. However patch-version applications will see garbage
line numbers if run against the standard 'libxml2'. This can
be prevented with a minor-version 'soname' tweak and/or
library version dependency (I'm fuzzy on the details
of the latter, never having done it myself), but I've got
no time to fiddle with this.
Created attachment 122932 [details]
BI safe change 'line' member of 'xmlNode' from 16-bit to 32-bit integer
As already posted on the GNOME bugzilla, those kind of changes are a trade-off.
The RHEL version won't diverge from upsteam, this should be discussed there.
Large instance are streamed anyway, not processed with a DOM, this patch
just makes the DOM based processing harder by inflating the in-memory size,
while for streaming processing getting the line number should be doable without
breaking inflating the size of DOM trees.