|
11 | 11 |
|
12 | 12 | __priority__ = PRIORITY.HIGHEST |
13 | 13 |
|
14 | | -def tamper(value): |
| 14 | +def tamper(payload): |
15 | 15 | """ |
16 | 16 | Replaces 'IFNULL(A, B)' with 'IF(ISNULL(A), B, A)' |
17 | 17 | Example: 'IFNULL(1, 2)' becomes 'IF(ISNULL(1), 2, 1)' |
18 | 18 | """ |
19 | 19 |
|
20 | | - if value and value.find("IFNULL") > -1: |
| 20 | + if payload and payload.find("IFNULL") > -1: |
21 | 21 |
|
22 | | - while value.find("IFNULL(") > -1: |
23 | | - index = value.find("IFNULL(") |
| 22 | + while payload.find("IFNULL(") > -1: |
| 23 | + index = payload.find("IFNULL(") |
24 | 24 | deepness = 1 |
25 | 25 | comma, end = None, None |
26 | 26 |
|
27 | | - for i in xrange(index + len("IFNULL("), len(value)): |
28 | | - if deepness == 1 and value[i] == ',': |
| 27 | + for i in xrange(index + len("IFNULL("), len(payload)): |
| 28 | + if deepness == 1 and payload[i] == ',': |
29 | 29 | comma = i |
30 | 30 |
|
31 | | - elif deepness == 1 and value[i] == ')': |
| 31 | + elif deepness == 1 and payload[i] == ')': |
32 | 32 | end = i |
33 | 33 | break |
34 | 34 |
|
35 | | - elif value[i] == '(': |
| 35 | + elif payload[i] == '(': |
36 | 36 | deepness += 1 |
37 | 37 |
|
38 | | - elif value[i] == ')': |
| 38 | + elif payload[i] == ')': |
39 | 39 | deepness -= 1 |
40 | 40 |
|
41 | 41 | if comma and end: |
42 | | - A = value[index + len("IFNULL("):comma] |
43 | | - B = value[comma + 1:end] |
| 42 | + A = payload[index + len("IFNULL("):comma] |
| 43 | + B = payload[comma + 1:end] |
44 | 44 | newVal = "IF(ISNULL(%s),%s,%s)" % (A, B, A) |
45 | | - value = value[:index] + newVal + value[end+1:] |
| 45 | + payload = payload[:index] + newVal + payload[end+1:] |
46 | 46 | else: |
47 | 47 | break |
48 | 48 |
|
49 | | - return value |
| 49 | + return payload |
0 commit comments