(self, name, attrs)
| 40 | threadData.lastErrorPage = (threadData.lastRequestUID, self._page) |
| 41 | |
| 42 | def startElement(self, name, attrs): |
| 43 | if self.dbms: |
| 44 | return |
| 45 | |
| 46 | if name == "dbms": |
| 47 | self._dbms = attrs.get("value") |
| 48 | |
| 49 | elif name == "error": |
| 50 | regexp = attrs.get("regexp") |
| 51 | if regexp not in kb.cache.regex: |
| 52 | keywords = re.findall(r"\w+", re.sub(r"\\.", " ", regexp)) |
| 53 | keywords = sorted(keywords, key=len) |
| 54 | kb.cache.regex[regexp] = keywords[-1].lower() |
| 55 | |
| 56 | if ('|' in regexp or kb.cache.regex[regexp] in (self._lower_page or kb.cache.regex[regexp])) and re.search(regexp, self._urldecoded_page, re.I): |
| 57 | self.dbms = self._dbms |
| 58 | self._markAsErrorPage() |
| 59 | kb.forkNote = kb.forkNote or attrs.get("fork") |
| 60 | |
| 61 | def htmlParser(page): |
| 62 | """ |
nothing calls this directly
no test coverage detected