usertools: replace unsafe input function
authorAndrius Sirvys <andrius.sirvys@intel.com>
Mon, 8 Apr 2019 13:54:41 +0000 (14:54 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 30 Jul 2019 22:22:33 +0000 (00:22 +0200)
LGTM static code analysis tool reports that the function 'input' is
unsafe. Changed to use raw_input which then converts it using
ast.literal_eval() which is safe.

Fixes: d1b94da4a4e0 ("usertools: add client script for telemetry")
Cc: stable@dpdk.org
Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com>
Acked-by: Kevin Laatz <kevin.laatz@intel.com>
usertools/dpdk-telemetry-client.py

index 572ff56..4b0502f 100755 (executable)
@@ -15,6 +15,11 @@ API_UNREG = "{\"action\":2,\"command\":\"clients\",\"data\":{\"client_path\":\""
 GLOBAL_METRICS_REQ = "{\"action\":0,\"command\":\"global_stat_values\",\"data\":null}"
 DEFAULT_FP = "/var/run/dpdk/default_client"
 
+try:
+       raw_input  # Python 2
+except NameError:
+       raw_input = input  # Python 3
+
 class Socket:
 
     def __init__(self):
@@ -73,7 +78,7 @@ class Client:
 
     def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics for given client
         print("\nPlease enter the number of times you'd like to continuously request Metrics:")
-        n_requests = int(input("\n:"))
+        n_requests = int(ast.literal_eval(raw_input("\n:")))
         print("\033[F") #Removes the user input from screen, cleans it up
         print("\033[K")
         for i in range(n_requests):
@@ -94,7 +99,7 @@ class Client:
             print("[4] Unregister client")
 
             try:
-                self.choice = int(input("\n:"))
+                self.choice = int(ast.literal_eval(raw_input("\n:")))
                 print("\033[F") #Removes the user input for screen, cleans it up
                 print("\033[K")
                 if self.choice == 1: