[bitbake-devel] [PATCH 1/2] lib/bb/utils.py: Fix a bug in edit_metadata() that could corrupt vars
Randy Witt
randy.e.witt at linux.intel.com
Thu Apr 7 06:55:39 UTC 2016
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 a fixes a test that matched the bugs
behavior rather than the expected behavior.
Signed-off-by: Randy Witt <randy.e.witt at linux.intel.com>
---
lib/bb/tests/utils.py | 2 +-
lib/bb/utils.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/bb/tests/utils.py b/lib/bb/tests/utils.py
index a035ccf..6ded4df 100644
--- a/lib/bb/tests/utils.py
+++ b/lib/bb/tests/utils.py
@@ -176,7 +176,7 @@ do_functionname() {
# Test file doesn't get modified with some the same values
self._testeditfile({'THIS': ('that', None, 0, True),
'OTHER': ('anothervalue', None, 0, True),
- 'MULTILINE3': (' c1 c2 c3', None, 4, False)}, self._origfile)
+ 'MULTILINE3': (' c1 c2 c3 ', None, 4, False)}, self._origfile)
def test_edit_metadata_file_1(self):
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index e9ad68f..8d7df13 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -1158,7 +1158,7 @@ def edit_metadata(meta_lines, variables, varfunc, match_overrides=False):
if in_var.endswith('()'):
if full_value.count('{') - full_value.count('}') >= 0:
continue
- full_value = full_value[:-1]
+ full_value = full_value[:-1]
if handle_var_end():
updated = True
checkspc = True
--
2.5.5
More information about the bitbake-devel
mailing list