summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
authorRandy Witt <randy.e.witt@linux.intel.com>2016-04-06 23:55:39 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-09 23:00:46 +0100
commite1e459e480bc6a530cec6ed2718ce52d5ef93149 (patch)
tree2b1e2209ac5136e59a32f8f84e4df655115c9da0 /bitbake/lib
parent43150ab7ec63d804e8a998ecee9d00295b8b2bc7 (diff)
downloadpoky-e1e459e480bc6a530cec6ed2718ce52d5ef93149.tar.gz
bitbake: lib/bb/utils.py: Fix a bug in edit_metadata() that could corrupt vars
edit_metadata() would corrupt a variable that was multiline, but had the ending quotes on the same line as the last value. For example: TEST_VAR = " foo \ bar" would become " foo ba" because the code would always delete the last character on the line and then do it again if the line ended in the quote. This however doesn't show up if you have: TEST_VAR = " foo \ bar \ " which is how all the test cases were written. This patch fixes that bug and adds and fixes a test that matched the bugs behavior rather than the expected behavior. (Bitbake rev: 14f05cbdc2ad8d59a94af1c8816567d93c39c88c) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/tests/utils.py2
-rw-r--r--bitbake/lib/bb/utils.py2
2 files changed, 2 insertions, 2 deletions
diff --git a/bitbake/lib/bb/tests/utils.py b/bitbake/lib/bb/tests/utils.py
index a035ccf179..6ded4dfd13 100644
--- a/bitbake/lib/bb/tests/utils.py
+++ b/bitbake/lib/bb/tests/utils.py
@@ -176,7 +176,7 @@ do_functionname() {
176 # Test file doesn't get modified with some the same values 176 # Test file doesn't get modified with some the same values
177 self._testeditfile({'THIS': ('that', None, 0, True), 177 self._testeditfile({'THIS': ('that', None, 0, True),
178 'OTHER': ('anothervalue', None, 0, True), 178 'OTHER': ('anothervalue', None, 0, True),
179 'MULTILINE3': (' c1 c2 c3', None, 4, False)}, self._origfile) 179 'MULTILINE3': (' c1 c2 c3 ', None, 4, False)}, self._origfile)
180 180
181 def test_edit_metadata_file_1(self): 181 def test_edit_metadata_file_1(self):
182 182
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
index e9ad68f2d7..8d7df13be7 100644
--- a/bitbake/lib/bb/utils.py
+++ b/bitbake/lib/bb/utils.py
@@ -1158,7 +1158,7 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
1158 if in_var.endswith('()'): 1158 if in_var.endswith('()'):
1159 if full_value.count('{') - full_value.count('}') >= 0: 1159 if full_value.count('{') - full_value.count('}') >= 0:
1160 continue 1160 continue
1161 full_value = full_value[:-1] 1161 full_value = full_value[:-1]
1162 if handle_var_end(): 1162 if handle_var_end():
1163 updated = True 1163 updated = True
1164 checkspc = True 1164 checkspc = True