Skip to content

Line range incorrect for a mult-line call (Python 3.7 only) #820

@ericwb

Description

@ericwb

Describe the bug

The end line number of an issue in a multi-line call is off by 1. It's reporting one less than actual end line number.

Reproduction steps

1 from paramiko import client
2
3 def test():
4    if True:
5         ssh_client = client.SSHClient()
6         ssh_client.set_missing_host_key_policy(
7             client.AutoAddPolicy
8         )
9     ssh_client.set_missing_host_key_policy(client.WarningPolicy)
  1. Create a file no_host_key_verification.py using code above

  2. Run bandit no_host_key_verification.py

  3. Notice in the output of the first issue:
    Location: examples/no_host_key_verification.py:6:8

    The 6 is the starting line number and 8 is the end line number of the call that is an issue.

Expected behavior

The output should be indicating
Location: examples/no_host_key_verification.py:6:9

that's because the ")" on line 9 is the true end of the call statement.

Bandit version

1.7.2 (Default)

Python version

3.7 only, fixed in 3.8+

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions