"dom::parse invalid" crashes the interpreter
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libxml2 |
Unknown
|
Unknown
|
|||
libxml2 (Debian) |
Fix Released
|
Unknown
|
|||
libxml2 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
tclxml (Debian) |
Invalid
|
Undecided
|
Unassigned | ||
tclxml (Ubuntu) |
Invalid
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: tclxml
Parsing any non-well-formed document seems to crash the interpreter:
$ tclsh
% package require xml
3.2
% dom::parse anything
Segmentation fault
I would expect it to report an error instead.
Additional informaiton:
$ apt-cache policy tclxml | grep Inst
Installed: 3.2-1
$ apt-cache policy libxml2 | grep Inst
Installed: 2.7.7.dfsg-
$ lsb_release -rd
Description: Ubuntu 10.10
Release: 10.10
$ uname -m
x86_64
Backtrace:
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5f4a749 in xmlTextReaderSt
at ../../xmlreader
4670 xmlTextReaderPtr reader = (xmlTextReaderPtr) ctx->_private;
(gdb) bt
#0 0x00007ffff5f4a749 in xmlTextReaderSt
error=0x6ed2f8) at ../../xmlreader
#1 0x00007ffff5e4398f in __xmlRaiseError (
schannel=
channel=
ctx=0x6ed0a0, nod=0x0, domain=1, code=4, level=XML_
line=1, str1=0x0, str2=0x0, str3=0x0, int1=0, col=1,
msg=
#2 0x00007ffff5e49a62 in xmlFatalErr (ctxt=0x6ed0a0,
error=
#3 0x00007ffff5e673e9 in xmlParseTryOrFinish (ctxt=0x6ed0a0, terminate=0)
at ../../parser.
#4 0x00007ffff5e69d21 in xmlParseChunk_
chunk=0x6aab10 "anything", size=8, terminate=0) at ../../parser.
#5 0x00007ffff5f43abf in xmlTextReaderPu
at ../../xmlreader
#6 0x00007ffff5f44778 in xmlTextReaderRe
at ../../xmlreader
#7 0x00007ffff61dc817 in ?? () from /usr/lib/
#8 0x00007ffff61d43c1 in ?? () from /usr/lib/
#9 0x00007ffff61d764f in ?? () from /usr/lib/
#10 0x00007ffff7b40169 in TclEvalObjvInternal () from /usr/lib/
#11 0x00007ffff7b6813e in ?? () from /usr/lib/
#12 0x00007ffff7b66231 in TclCompEvalObj () from /usr/lib/
#13 0x00007ffff7b97977 in TclObjInterpProc () from /usr/lib/
#14 0x00007ffff7b40169 in TclEvalObjvInternal () from /usr/lib/
#15 0x00007ffff7b40e8c in Tcl_EvalEx () from /usr/lib/
#16 0x00007ffff7b411c9 in Tcl_EvalObjEx () from /usr/lib/
#17 0x00007ffff7b45ed3 in Tcl_EvalObjCmd () from /usr/lib/
#18 0x00007ffff7b40169 in TclEvalObjvInternal () from /usr/lib/
#19 0x00007ffff7b6813e in ?? () from /usr/lib/
#20 0x00007ffff7b66231 in TclCompEvalObj () from /usr/lib/
#21 0x00007ffff7b97977 in TclObjInterpProc () from /usr/lib/
#22 0x00007ffff7b40169 in TclEvalObjvInternal () from /usr/lib/
#23 0x00007ffff7b6813e in ?? () from /usr/lib/
#24 0x00007ffff7b66231 in TclCompEvalObj () from /usr/lib/
#25 0x00007ffff7b4123e in Tcl_EvalObjEx () from /usr/lib/
#26 0x00007ffff7b736fe in Tcl_RecordAndEv
#27 0x00007ffff7b896e8 in Tcl_Main () from /usr/lib/
#28 0x00000000004008f0 in main ()
Related branches
affects: | tclxml (Ubuntu) → libxml2 (Ubuntu) |
tags: | added: patch |
Changed in libxml2 (Debian): | |
status: | Unknown → Confirmed |
Changed in libxml2 (Debian): | |
status: | Confirmed → Fix Released |
Changed in libxml2: | |
importance: | Undecided → Unknown |
status: | New → Unknown |
Jakub Wilk has pointed me to this patch which appears to solve the problem.