Comment 6 for bug 460499

Revision history for this message
buzzdee (sebastia) wrote :

Forgot, the segfault is probably due to the version of tcl/tk I have running on OpenBSD. On Linux I get the following exception:

key "forbidden" not known in dictionary
key "forbidden" not known in dictionary
    while executing
"dict get $xmppShort $errcode"
    (procedure "GetErrorStr" line 64)
    invoked from within
"GetErrorStr $errcode $errmsg"
    (procedure "HandleErrorCode" line 11)
    invoked from within
"HandleErrorCode $errcode $errmsg"
    (procedure "HighFinal" line 24)
    invoked from within
"HighFinal $token $jlibname $status $errcode $errmsg"
    (procedure "::Login::HighLoginCB" line 11)
    invoked from within
"::Login::HighLoginCB ::Login::high3 ::jlib::jlib1 error forbidden {Username or password not correct.}"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 $state(-command) [list $jlibname $status $errcode $errmsg]"
    (procedure "finish" line 49)
    invoked from within
"finish $jlibname $errcode $errmsg"
    (procedure "auth_cb" line 10)
    invoked from within
"auth_cb ::jlib::jlib1 error {forbidden {Username or password not correct.}}"
    (in namespace inscope "::jlib::connect" script line 1)
    invoked from within
"::namespace inscope ::jlib::connect auth_cb ::jlib::jlib1 error {forbidden {Username or password not correct.}}"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 $cmd [list $jlibname $type $subiq]"
    (procedure "::jlib::invoke_iq_callback" line 5)
    invoked from within
"::jlib::invoke_iq_callback ::jlib::jlib1 {::namespace inscope ::jlib::connect auth_cb} error {forbidden {Username or password not correct.}}"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 $iqcmd($id) [list error $errspec]"
    (procedure "iq_handler" line 83)
    invoked from within
"iq_handler $jlibname $xmldata"
    (procedure "::jlib::dispatcher" line 9)
    invoked from within
"::jlib::dispatcher ::jlib::jlib1 {iq {id 1038 type error} 0 {} {{query {xmlns jabber:iq:auth} 0 {} {{username {} 0 You {}} {resource {} 0 Coccinella@s..."
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 $wrapper($id,parsecmd) [list $wrapper($id,tree,2)]"
    (procedure "::wrapper::elementend" line 41)
    invoked from within
"::wrapper::elementend wrap1 iq -namespace urn:ietf:params:xml:ns:xmpp-stanzas"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 $options(-elementendcommand) [list $tag] $empty $ns"
    invoked from within
"ParseEvent:ElementClose $tag [array get options]"
    invoked from within
"::sgml::parseEvent {{} {} {} {} iq {} { type="error" id="1038"} {} query {} { xmlns="jabber:iq:auth"} {} username {} {} You username / {} {} resource ..."
    ("eval" body line 1)
    invoked from within
"eval ::sgml::parseEvent [list $tokenised] $parseOptions"
    (procedure "parse" line 60)
    invoked from within
"parse xmlparser2 {<iq type="error" id="1038"><query xmlns="jabber:iq:auth"><username>You</username><resource>Coccinella@sre</resource><password/></que..."
    (in namespace inscope "::xml::tclparser" script line 1)
    invoked from within
"::namespace inscope ::xml::tclparser parse xmlparser2 {<iq type="error" id="1038"><query xmlns="jabber:iq:auth"><username>You</username><resource>Cocc..."
    ("eval" body line 1)
    invoked from within
"eval $classinfo(-parsecommand) [list $name] $args"
    (procedure "::xml::ParserCmd" line 46)
    invoked from within
"::xml::ParserCmd xmlparser2 parse {<iq type="error" id="1038"><query xmlns="jabber:iq:auth"><username>You</username><resource>Coccinella@sre</resource..."
    ("eval" body line 1)
    invoked from within
"eval ::xml::ParserCmd xmlparser2 [list $method] $args"
    (procedure "xmlparser2" line 1)
    invoked from within
"$p parse $xml"
    (procedure "parsereentrant" line 10)
    invoked from within
"parsereentrant $id $xml"
    (procedure "wrapper::parse" line 6)
    invoked from within
"wrapper::parse $lib(wrap) $data"
    (procedure "::jlib::recvsocket" line 24)
    invoked from within
"::jlib::recvsocket ::jlib::jlib1"

However, adding the forbidden error message mentioned above, to the dictionary xmppShort, would make the segfault and exception go away...