lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191113121515.GC14646@kernel.org>
Date:   Wed, 13 Nov 2019 09:15:15 -0300
From:   Arnaldo Carvalho de Melo <arnaldo.melo@...il.com>
To:     Adrian Hunter <adrian.hunter@...el.com>
Cc:     Jiri Olsa <jolsa@...hat.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] perf scripts python: exported-sql-viewer.py: Fix use of
 TRUE with SQLite

Em Wed, Nov 13, 2019 at 02:02:06PM +0200, Adrian Hunter escreveu:
> Prior to version 3.23 SQLite does not support TRUE or FALSE, so always use
> 1 and 0 for SQLite.
> 
> Fixes: 26c11206f433 ("perf scripts python: exported-sql-viewer.py: Use new 'has_calls' column")
> Signed-off-by: Adrian Hunter <adrian.hunter@...el.com>
> Cc: stable@...r.kernel.org

Thanks, applied and added the first tag with that fixed cset:

Cc: stable@...r.kernel.org # v5.3+

[acme@...co perf]$ git tag --contains 26c11206f433 | grep ^v[3-9] | head
v5.3
v5.3-rc1
v5.3-rc2
v5.3-rc3
v5.3-rc4
v5.3-rc5
v5.3-rc6
v5.3-rc7
v5.3-rc8
v5.4-rc1
[acme@...co perf]$

- Arnaldo

> ---
>  tools/perf/scripts/python/exported-sql-viewer.py | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/scripts/python/exported-sql-viewer.py b/tools/perf/scripts/python/exported-sql-viewer.py
> index ebc6a2e5eae9..26d7be785288 100755
> --- a/tools/perf/scripts/python/exported-sql-viewer.py
> +++ b/tools/perf/scripts/python/exported-sql-viewer.py
> @@ -637,7 +637,7 @@ class CallGraphRootItem(CallGraphLevelItemBase):
>  		self.query_done = True
>  		if_has_calls = ""
>  		if IsSelectable(glb.db, "comms", columns = "has_calls"):
> -			if_has_calls = " WHERE has_calls = TRUE"
> +			if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
>  		query = QSqlQuery(glb.db)
>  		QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
>  		while query.next():
> @@ -918,7 +918,7 @@ class CallTreeRootItem(CallGraphLevelItemBase):
>  		self.query_done = True
>  		if_has_calls = ""
>  		if IsSelectable(glb.db, "comms", columns = "has_calls"):
> -			if_has_calls = " WHERE has_calls = TRUE"
> +			if_has_calls = " WHERE has_calls = " + glb.dbref.TRUE
>  		query = QSqlQuery(glb.db)
>  		QueryExec(query, "SELECT id, comm FROM comms" + if_has_calls)
>  		while query.next():
> @@ -1290,7 +1290,7 @@ class SwitchGraphData(GraphData):
>  		QueryExec(query, "SELECT id, c_time"
>  					" FROM comms"
>  					" WHERE c_thread_id = " + str(thread_id) +
> -					"   AND exec_flag = TRUE"
> +					"   AND exec_flag = " + self.collection.glb.dbref.TRUE +
>  					"   AND c_time >= " + str(start_time) +
>  					"   AND c_time <= " + str(end_time) +
>  					" ORDER BY c_time, id")
> @@ -5016,6 +5016,12 @@ class DBRef():
>  	def __init__(self, is_sqlite3, dbname):
>  		self.is_sqlite3 = is_sqlite3
>  		self.dbname = dbname
> +		self.TRUE = "TRUE"
> +		self.FALSE = "FALSE"
> +		# SQLite prior to version 3.23 does not support TRUE and FALSE
> +		if self.is_sqlite3:
> +			self.TRUE = "1"
> +			self.FALSE = "0"
>  
>  	def Open(self, connection_name):
>  		dbname = self.dbname
> -- 
> 2.17.1

-- 

- Arnaldo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ