From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <anatoly.burakov@intel.com>
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id 5CF791B1EA;
 Wed,  3 Apr 2019 16:29:13 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 03 Apr 2019 07:29:12 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.60,304,1549958400"; d="scan'208";a="132642757"
Received: from aburakov-mobl1.ger.corp.intel.com (HELO [10.237.220.103])
 ([10.237.220.103])
 by orsmga006.jf.intel.com with ESMTP; 03 Apr 2019 07:29:10 -0700
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Andrius Sirvys <andrius.sirvys@intel.com>, dev@dpdk.org,
 Kevin Laatz <kevin.laatz@intel.com>, stable@dpdk.org, ciara.power@intel.com
References: <1553100181-32934-1-git-send-email-andrius.sirvys@intel.com>
 <7e3a6736-24bb-b235-0ce9-aae17ab5d4a0@intel.com>
 <20190403133010.GB1309@bricha3-MOBL.ger.corp.intel.com>
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Message-ID: <a7e773ae-8ad5-23a2-e4cf-0ffd2a30f8cd@intel.com>
Date: Wed, 3 Apr 2019 15:29:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <20190403133010.GB1309@bricha3-MOBL.ger.corp.intel.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH] usertools: replace unsafe input function
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Apr 2019 14:29:14 -0000

On 03-Apr-19 2:30 PM, Bruce Richardson wrote:
> On Wed, Apr 03, 2019 at 11:44:40AM +0100, Burakov, Anatoly wrote:
>> On 20-Mar-19 4:43 PM, Andrius Sirvys wrote:
>>> 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: ciara.power@intel.com
>>>
>>> Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com>
>>> ---
>>>    usertools/dpdk-telemetry-client.py | 4 ++--
>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py
>>> index ce0c7a9..c3ba77d 100755
>>> --- a/usertools/dpdk-telemetry-client.py
>>> +++ b/usertools/dpdk-telemetry-client.py
>>> @@ -72,7 +72,7 @@ def requestMetrics(self): # Requests metrics for given 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):
>>> @@ -87,7 +87,7 @@ def interactiveMenu(self, sleep_time): # Creates Interactive menu within the scr
>>>                print("[3] 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:
>>>
>>
>> raw_input doesn't exist in Python 3.
>>
>> Perhaps you should do this at the top of the script:
>>
>> try:
>>      raw_input  # Python 2
>> except NameError:
>>      raw_input = input  # Python 3
>>
>> That way, all calls to raw_input will call the intended function.
>>
> 
> The suggested way in the python docs is a little different:
> 
> https://python-future.org/compatible_idioms.html#raw_input()
> 

Or that :)

-- 
Thanks,
Anatoly

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id A8775A0679
	for <public@inbox.dpdk.org>; Wed,  3 Apr 2019 16:29:25 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 7EB951B446;
	Wed,  3 Apr 2019 16:29:18 +0200 (CEST)
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id 5CF791B1EA;
 Wed,  3 Apr 2019 16:29:13 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 03 Apr 2019 07:29:12 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.60,304,1549958400"; d="scan'208";a="132642757"
Received: from aburakov-mobl1.ger.corp.intel.com (HELO [10.237.220.103])
 ([10.237.220.103])
 by orsmga006.jf.intel.com with ESMTP; 03 Apr 2019 07:29:10 -0700
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Andrius Sirvys <andrius.sirvys@intel.com>, dev@dpdk.org,
 Kevin Laatz <kevin.laatz@intel.com>, stable@dpdk.org, ciara.power@intel.com
References: <1553100181-32934-1-git-send-email-andrius.sirvys@intel.com>
 <7e3a6736-24bb-b235-0ce9-aae17ab5d4a0@intel.com>
 <20190403133010.GB1309@bricha3-MOBL.ger.corp.intel.com>
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Message-ID: <a7e773ae-8ad5-23a2-e4cf-0ffd2a30f8cd@intel.com>
Date: Wed, 3 Apr 2019 15:29:09 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <20190403133010.GB1309@bricha3-MOBL.ger.corp.intel.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH] usertools: replace unsafe input function
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190403142909.pPNinEbLLpKcIafQlg9CegdZ1QiG0m2IQ0HfGRugFgI@z>

On 03-Apr-19 2:30 PM, Bruce Richardson wrote:
> On Wed, Apr 03, 2019 at 11:44:40AM +0100, Burakov, Anatoly wrote:
>> On 20-Mar-19 4:43 PM, Andrius Sirvys wrote:
>>> 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: ciara.power@intel.com
>>>
>>> Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com>
>>> ---
>>>    usertools/dpdk-telemetry-client.py | 4 ++--
>>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py
>>> index ce0c7a9..c3ba77d 100755
>>> --- a/usertools/dpdk-telemetry-client.py
>>> +++ b/usertools/dpdk-telemetry-client.py
>>> @@ -72,7 +72,7 @@ def requestMetrics(self): # Requests metrics for given 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):
>>> @@ -87,7 +87,7 @@ def interactiveMenu(self, sleep_time): # Creates Interactive menu within the scr
>>>                print("[3] 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:
>>>
>>
>> raw_input doesn't exist in Python 3.
>>
>> Perhaps you should do this at the top of the script:
>>
>> try:
>>      raw_input  # Python 2
>> except NameError:
>>      raw_input = input  # Python 3
>>
>> That way, all calls to raw_input will call the intended function.
>>
> 
> The suggested way in the python docs is a little different:
> 
> https://python-future.org/compatible_idioms.html#raw_input()
> 

Or that :)

-- 
Thanks,
Anatoly