mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2026-06-20 06:28:55 +00:00
Fixing custom xrange for negative steps
This commit is contained in:
parent
800e6f0a56
commit
f09ea122fb
3 changed files with 22 additions and 7 deletions
|
|
@ -188,7 +188,7 @@ c03dc585f89642cfd81b087ac2723e3e1bb3bfa8c60e6f5fe58ef3b0113ebfe6 lib/core/data.
|
|||
48797d6c34dd9bb8a53f7f3794c85f4288d82a9a1d6be7fcf317d388cb20d4b3 lib/core/replication.py
|
||||
0b8c38a01bb01f843d94a6c5f2075ee47520d0c4aa799cecea9c3e2c5a4a23a6 lib/core/revision.py
|
||||
888daba83fd4a34e9503fe21f01fef4cc730e5cde871b1d40e15d4cbc847d56c lib/core/session.py
|
||||
118f716132dc29f5fb5692d30948f2d73295fc2638571abc5711bcfeaa7f4a0e lib/core/settings.py
|
||||
b93b225a22ec3f11f2b37823f5ee7c4ed76b67cac9bebc4a2e62e1ae1a2538db lib/core/settings.py
|
||||
cd5a66deee8963ba8e7e9af3dd36eb5e8127d4d68698811c29e789655f507f82 lib/core/shell.py
|
||||
bcb5d8090d5e3e0ef2a586ba09ba80eef0c6d51feb0f611ed25299fbb254f725 lib/core/subprocessng.py
|
||||
70ea3768f1b3062b22d20644df41c86238157ec80dd43da40545c620714273c6 lib/core/target.py
|
||||
|
|
@ -261,7 +261,7 @@ de4be7e291db0962cd59f9c04b3f7259f846e315df1fd9b323954f89fae0b2db lib/utils/sear
|
|||
f0e5525a92fe971defc8f74c27942ff9138b1e8251f2e0d9a8bd59285b656084 lib/utils/timeout.py
|
||||
f821dc39a75ea48dccfa758788de15d38b9ca6a780a98f59935fb6610f75508c lib/utils/tui.py
|
||||
e430db49aa768ff2cdba76932e30871c366054599c44d91580dde459ab9b6fef lib/utils/versioncheck.py
|
||||
b6cd3059c369bbcb162cfd797596849f9f95078c3b2e91fecee36d3ea1001fc2 lib/utils/xrange.py
|
||||
1b439fc59fd202c21c74978ed9f36d1c309533226c77907eae159461525f9fef lib/utils/xrange.py
|
||||
b1bbb62f5b272a6247d442d5e4f644a5bca7138e70776539ec84a5a90433fd13 LICENSE
|
||||
6b1828a80ae3472f1adb53a540dee0835eccac14f8cfc4bf73962c4e49a49557 plugins/dbms/access/connector.py
|
||||
c18939660aebb5ce323b4c78a46a2b119869ba8d0b44c853924118936ce5b0ac plugins/dbms/access/enumeration.py
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ from lib.core.enums import OS
|
|||
from thirdparty import six
|
||||
|
||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||
VERSION = "1.10.6.93"
|
||||
VERSION = "1.10.6.94"
|
||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ class xrange(object):
|
|||
True
|
||||
>>> list(xrange(0, 7, 2)) == list(range(0, 7, 2))
|
||||
True
|
||||
>>> list(xrange(8, 0, -2)) == list(range(8, 0, -2))
|
||||
True
|
||||
>>> foobar = xrange(1, 10)
|
||||
>>> 7 in foobar
|
||||
True
|
||||
|
|
@ -33,6 +35,12 @@ class xrange(object):
|
|||
False
|
||||
>>> foobar[0]
|
||||
1
|
||||
>>> 6 in xrange(8, 0, -2)
|
||||
True
|
||||
>>> 0 in xrange(8, 0, -2)
|
||||
False
|
||||
>>> xrange(0, 10, 2).index(4)
|
||||
2
|
||||
"""
|
||||
|
||||
__slots__ = ['_slice']
|
||||
|
|
@ -71,10 +79,17 @@ class xrange(object):
|
|||
return self._len()
|
||||
|
||||
def _len(self):
|
||||
return max(0, 1 + int((self.stop - 1 - self.start) // self.step))
|
||||
if self.step > 0:
|
||||
lo, hi, step = self.start, self.stop, self.step
|
||||
else: # Note: normalizing for descending ranges (negative step)
|
||||
lo, hi, step = self.stop, self.start, -self.step
|
||||
return max(0, (hi - lo + step - 1) // step)
|
||||
|
||||
def __contains__(self, value):
|
||||
return (self.start <= value < self.stop) and (value - self.start) % self.step == 0
|
||||
if self.step > 0:
|
||||
return self.start <= value < self.stop and (value - self.start) % self.step == 0
|
||||
else:
|
||||
return self.stop < value <= self.start and (value - self.start) % self.step == 0
|
||||
|
||||
def __getitem__(self, index):
|
||||
if isinstance(index, slice):
|
||||
|
|
@ -98,7 +113,7 @@ class xrange(object):
|
|||
return self.start + self.step * i
|
||||
|
||||
def index(self, i):
|
||||
if self.start <= i < self.stop:
|
||||
return i - self.start
|
||||
if i in self:
|
||||
return (i - self.start) // self.step # Note: also accounts for step != 1 (and descending ranges)
|
||||
else:
|
||||
raise ValueError("%d is not in list" % i)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue