[oe-commits] [bitbake] 01/02: lib/bb/utils.py: Fix a bug in edit_metadata() that could corrupt vars

git at git.openembedded.org git at git.openembedded.org
Thu Apr 7 17:03:09 UTC 2016


rpurdie pushed a commit to branch master-next
in repository bitbake.

commit c2233ed41b017251d66351fa16b3254262255b9b
Author: Randy Witt <randy.e.witt at linux.intel.com>
AuthorDate: Wed Apr 6 23:55:39 2016 -0700

    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 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>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list