()
| 509 | |
| 510 | try: |
| 511 | def blindThread(): |
| 512 | threadData = getCurrentThreadData() |
| 513 | |
| 514 | while kb.threadContinue: |
| 515 | with kb.locks.index: |
| 516 | if threadData.shared.index[0] - firstChar >= length: |
| 517 | return |
| 518 | |
| 519 | threadData.shared.index[0] += 1 |
| 520 | currentCharIndex = threadData.shared.index[0] |
| 521 | |
| 522 | if kb.threadContinue: |
| 523 | val = getChar(currentCharIndex, asciiTbl, not (charsetType is None and conf.charset)) |
| 524 | if val is None: |
| 525 | val = INFERENCE_UNKNOWN_CHAR |
| 526 | else: |
| 527 | break |
| 528 | |
| 529 | # NOTE: https://github.com/sqlmapproject/sqlmap/issues/4629 |
| 530 | if not isListLike(threadData.shared.value): |
| 531 | break |
| 532 | |
| 533 | with kb.locks.value: |
| 534 | threadData.shared.value[currentCharIndex - 1 - firstChar] = val |
| 535 | currentValue = list(threadData.shared.value) |
| 536 | |
| 537 | if kb.threadContinue: |
| 538 | if showEta: |
| 539 | progress.progress(threadData.shared.index[0]) |
| 540 | elif conf.verbose >= 1: |
| 541 | startCharIndex = 0 |
| 542 | endCharIndex = 0 |
| 543 | |
| 544 | for i in xrange(length): |
| 545 | if currentValue[i] is not None: |
| 546 | endCharIndex = max(endCharIndex, i) |
| 547 | |
| 548 | output = '' |
| 549 | |
| 550 | if endCharIndex > conf.progressWidth: |
| 551 | startCharIndex = endCharIndex - conf.progressWidth |
| 552 | |
| 553 | count = threadData.shared.start |
| 554 | |
| 555 | for i in xrange(startCharIndex, endCharIndex + 1): |
| 556 | output += '_' if currentValue[i] is None else filterControlChars(currentValue[i] if len(currentValue[i]) == 1 else ' ', replacement=' ') |
| 557 | |
| 558 | for i in xrange(length): |
| 559 | count += 1 if currentValue[i] is not None else 0 |
| 560 | |
| 561 | if startCharIndex > 0: |
| 562 | output = ".." + output[2:] |
| 563 | |
| 564 | if (endCharIndex - startCharIndex == conf.progressWidth) and (endCharIndex < length - 1): |
| 565 | output = output[:-2] + ".." |
| 566 | |
| 567 | if conf.verbose in (1, 2) and not any((showEta, conf.api, kb.bruteMode)): |
| 568 | _ = count - firstChar |
nothing calls this directly
no test coverage detected
searching dependent graphs…