Last Msg First Msg
























method com.dmdirc.parser.irc.ProcessTopic__static_init










method void process(String, String[])
presParam != null
pretoken != null
pre(soft) init'ed(this.myParser.stringConverter)
pre(soft) token[0] != null
pre(soft) this.myParser != null
pre(soft) this.myParser.hChannelList != null
pre(soft) this.myParser.hClientList != null
pre(soft) this.myParser.myCallbackManager != null
pre(soft) this.myParser.myCallbackManager. callbackHash != null
pre(soft) this.myParser.stringConverter.lowercase != null
pre(soft) init'ed(this.myParser.stringConverter. lowercase[...])
pre(soft) token.length in {3..232}
pre(soft) init'ed(token[...])
pre(soft) token[2] != null
pre(soft) token[3] != null
pre(soft) init'ed(token[4])
pre(soft) init'ed(token[5])
presumptioniClient.sHost != null
presumptionthis.myParser.stringConverter.lowercase != null
postinit'ed(java.lang.String:substring(...)._tainted)
postinit'ed(this.myParser.stringConverter)
posttoken[0] == One-of{old token[0], &java.lang. String:substring(...)}
posttoken[0] != null
postnew IRCStringConverter(getIRCStringConverter#1) num objects <= 1
postnew IRCStringConverter(getIRCStringConverter#1) num objects == 0
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).limit)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).lowercase)
postinit'ed(new IRCStringConverter(getIRCStringConverte r#1).uppercase)
postnew char[](IRCStringConverter#1) num objects <= 1
postnew char[](IRCStringConverter#1) num objects == 0
postinit'ed(new char[](IRCStringConverter#1).length)
postpossibly_updated(new char[](IRCStringConverter#1)[...])
postnew char[](IRCStringConverter#2) num objects <= 1
postnew char[](IRCStringConverter#2) num objects == 0
postinit'ed(new char[](IRCStringConverter#2).length)
postpossibly_updated(new char[](IRCStringConverter#2)[...])
unanalyzedcall on getCallbackManager
unanalyzedcall on getCallbackType
unanalyzedcall on java.lang.Boolean:valueOf
unanalyzedcall on call
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get
unanalyzedcall on getChannelInfo
unanalyzedcall on getClientInfo
unanalyzedcall on java.lang.String:isEmpty
unanalyzedcall on java.lang.String:charAt
unanalyzedcall on java.lang.String:substring
unanalyzedcall on java.lang.String:split
unanalyzedcall on java.lang.Throwable:__curr_excep_obj
unanalyzedcall on java.lang.String:toCharArray
unanalyzedcall on java.lang.String:length
unanalyzedcall on java.lang.String
unanalyzedcall on parseHost
test_vectortoken.length: {3}, {4}, {5}, {6..232}
test_vectorjava.lang.String:charAt(...)@62: {0..57, 59..216-1}, {58}
test_vectorjava.lang.String:equals(...)@38: {0}, {1}
test_vectorjava.lang.String:equals(...)@42: {0}, {1}
test_vectorjava.lang.String:isEmpty(...)@57: {0}, {1}









Prev Msg Next Msg
  array index out of bounds
Medium Prob.
check that token.length >= 4
Prev Msg Next Msg











method bool callChannelTopic(ChannelInfo, bool)
prethis.myParser != null
prethis.myParser.myCallbackManager != null
prethis.myParser.myCallbackManager.callbackHash != null
presumptiongetCallbackManager(...)@78 init'ed
postinit'ed(return_value)
unanalyzedcall on getCallbackManager
unanalyzedcall on java.util.Map:containsKey
unanalyzedcall on java.lang.String:toLowerCase
unanalyzedcall on java.lang.RuntimeException
unanalyzedcall on java.util.Map:get









Prev Msg Next Msg
  null dereference
Medium Prob.
check that getCallbackType(...) != null
  call too complex - analysis skippedInfocall on bool call(Object[])
Prev Msg Next Msg











method String[] handles()
postreturn_value == &amp;new String[](handles#1)
postnew String[](handles#1) num objects == 1
postreturn_value.length == 3
postreturn_value[0] == &amp;"TOPIC"
postreturn_value[1] == &amp;"332"
postreturn_value[2] == &amp;"333"










method void com.dmdirc.parser.irc.ProcessTopic(IRCParser, ProcessingManager)
postthis.myManager == manager
postinit'ed(this.myManager)
postthis.myParser == parser
postinit'ed(this.myParser)