summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlauer, Daniel <Daniel.Klauer@gin.de>2016-04-05 08:49:15 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-05 14:36:46 +0100
commit09623a0811c613a47a01ae465b822d8156faca30 (patch)
tree897aaee64d7e0ac4ca5b2e842376de41e015dc34
parentda444c9761ee15a59ea8880e3f812a5d3f1a1aaa (diff)
downloadopenembedded-core-contrib-09623a0811c613a47a01ae465b822d8156faca30.tar.gz
persist_data: Return str instead of unicode for sqlite3 text queries
Python 2's sqlite3 module defaults to returning Unicode strings for SQL text queries, which could trickle down to other parts of bitbake code and cause unexpected Unicode conversions. Using byte strings avoids this issue. For example, the git fetcher's AUTOREV support caches HEAD SHA1's using bb.persist_data, so sometimes the git command strings passed to fetch2's runfetchcmd() were unicode, potentially causing UnicodeDecodeErrors when it appended the values of environment variables containing non-ASCII chars. [YOCTO #9382] Signed-off-by: Daniel Klauer <daniel.klauer@gin.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/persist_data.py1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/bb/persist_data.py b/lib/bb/persist_data.py
index 5795bc835b..e45042324e 100644
--- a/lib/bb/persist_data.py
+++ b/lib/bb/persist_data.py
@@ -201,6 +201,7 @@ class PersistData(object):
def connect(database):
connection = sqlite3.connect(database, timeout=5, isolation_level=None)
connection.execute("pragma synchronous = off;")
+ connection.text_factory = str
return connection
def persist(domain, d):