From 2a55042218acd52c41a3850b8703eb5baea882a7 Mon Sep 17 00:00:00 2001 From: Evell Lam Date: Thu, 27 Aug 2015 22:10:32 +0000 Subject: [PATCH] Check all session and cursor aliases Include additional try except to catch IndexErrors --- py_find_injection/__init__.py | 17 ++++++++++------- setup.py | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/py_find_injection/__init__.py b/py_find_injection/__init__.py index 53b3a4d..41e3c3d 100644 --- a/py_find_injection/__init__.py +++ b/py_find_injection/__init__.py @@ -4,10 +4,9 @@ import ast import sys -version_info = (0, 1, 1) +version_info = (0, 1, 2) __version__ = '.'.join(map(str, version_info)) - def stringify(node): if isinstance(node, ast.Name): return node.id @@ -77,11 +76,15 @@ def check_execute(self, node): def visit_Call(self, node): function_name = stringify(node.func) - if function_name.lower() in ('session.execute', 'cursor.execute'): - node.args[0].parent = node - node_error = self.check_execute(node.args[0]) - if node_error: - self.errors.append(node_error) + # catch and check aliases of session.execute and cursor.execute + if function_name.lower().endswith('.execute'): + try: + node.args[0].parent = node + node_error = self.check_execute(node.args[0]) + if node_error: + self.errors.append(node_error) + except IndexError: + pass elif function_name.lower() == 'eval': self.errors.append(IllegalLine('eval() is just generally evil', node, self.filename)) self.generic_visit(node) diff --git a/setup.py b/setup.py index af7b4bc..683d9c3 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ setup( name="py-find-injection", - version="0.1.1", + version="0.1.2", author="James Brown", author_email="jbrown@uber.com", url="https://github.com/uber/py-find-injection",