Skip to content

Commit 2962979

Browse files
committed
Python: add test for __traceback__
1 parent 9f8a028 commit 2962979

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
edges
2-
| test.py:33:15:33:36 | ControlFlowNode for Attribute() | test.py:34:29:34:31 | ControlFlowNode for err |
3-
| test.py:34:29:34:31 | ControlFlowNode for err | test.py:34:16:34:32 | ControlFlowNode for format_error() |
2+
| test.py:49:15:49:36 | ControlFlowNode for Attribute() | test.py:50:29:50:31 | ControlFlowNode for err |
3+
| test.py:50:29:50:31 | ControlFlowNode for err | test.py:50:16:50:32 | ControlFlowNode for format_error() |
44
nodes
55
| test.py:16:16:16:37 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() |
6-
| test.py:33:15:33:36 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() |
7-
| test.py:34:16:34:32 | ControlFlowNode for format_error() | semmle.label | ControlFlowNode for format_error() |
8-
| test.py:34:29:34:31 | ControlFlowNode for err | semmle.label | ControlFlowNode for err |
6+
| test.py:49:15:49:36 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() |
7+
| test.py:50:16:50:32 | ControlFlowNode for format_error() | semmle.label | ControlFlowNode for format_error() |
8+
| test.py:50:29:50:31 | ControlFlowNode for err | semmle.label | ControlFlowNode for err |
99
#select
1010
| test.py:16:16:16:37 | ControlFlowNode for Attribute() | test.py:16:16:16:37 | ControlFlowNode for Attribute() | test.py:16:16:16:37 | ControlFlowNode for Attribute() | $@ may be exposed to an external user | test.py:16:16:16:37 | ControlFlowNode for Attribute() | Error information |
11-
| test.py:34:16:34:32 | ControlFlowNode for format_error() | test.py:33:15:33:36 | ControlFlowNode for Attribute() | test.py:34:16:34:32 | ControlFlowNode for format_error() | $@ may be exposed to an external user | test.py:33:15:33:36 | ControlFlowNode for Attribute() | Error information |
11+
| test.py:50:16:50:32 | ControlFlowNode for format_error() | test.py:49:15:49:36 | ControlFlowNode for Attribute() | test.py:50:16:50:32 | ControlFlowNode for format_error() | $@ may be exposed to an external user | test.py:49:15:49:36 | ControlFlowNode for Attribute() | Error information |

python/ql/test/query-tests/Security/CWE-209/test.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,31 @@ def do_computation():
1212
def server_bad():
1313
try:
1414
do_computation()
15-
except Exception as e: #$ exceptionInfo
15+
except Exception:
1616
return traceback.format_exc() #$ exceptionInfo
1717

18+
# BAD
19+
@app.route('/bad/clearly')
20+
def server_bad():
21+
try:
22+
do_computation()
23+
except Exception as e: #$ exceptionInfo
24+
return e
25+
26+
# BAD
27+
@app.route('/bad/also')
28+
def server_bad():
29+
try:
30+
do_computation()
31+
except Exception as e: #$ exceptionInfo
32+
return e.__traceback__
33+
1834
# GOOD
1935
@app.route('/good')
2036
def server_good():
2137
try:
2238
do_computation()
23-
except Exception as e: #$ exceptionInfo
39+
except Exception:
2440
log(traceback.format_exc()) #$ exceptionInfo
2541
return "An internal error has occurred!"
2642

@@ -29,7 +45,7 @@ def server_good():
2945
def server_bad_flow():
3046
try:
3147
do_computation()
32-
except Exception as e: #$ exceptionInfo
48+
except Exception:
3349
err = traceback.format_exc() #$ exceptionInfo
3450
return format_error(err)
3551

0 commit comments

Comments
 (0)