32 |
32 |
33 |
33 |
34 def checkParamikoCalls(reportError, context, config): |
34 def checkParamikoCalls(reportError, context, config): |
35 """ |
35 """ |
36 Function to check for shell injection within Paramiko. |
36 Function to check for shell injection within Paramiko. |
37 |
37 |
38 @param reportError function to be used to report errors |
38 @param reportError function to be used to report errors |
39 @type func |
39 @type func |
40 @param context security context object |
40 @param context security context object |
41 @type SecurityContext |
41 @type SecurityContext |
42 @param config dictionary with configuration data |
42 @param config dictionary with configuration data |
43 @type dict |
43 @type dict |
44 """ |
44 """ |
45 for module in ['paramiko']: |
45 for module in ["paramiko"]: |
46 if ( |
46 if context.isModuleImportedLike(module) and context.callFunctionName in [ |
47 context.isModuleImportedLike(module) and |
47 "exec_command" |
48 context.callFunctionName in ['exec_command'] |
48 ]: |
49 ): |
|
50 reportError( |
49 reportError( |
51 context.node.lineno - 1, |
50 context.node.lineno - 1, |
52 context.node.col_offset, |
51 context.node.col_offset, |
53 "S601", |
52 "S601", |
54 "M", |
53 "M", |