diff options
Diffstat (limited to 'bitbake/lib/bb/cooker.py')
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 9c58d95006..a02d143c34 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -1759,11 +1759,24 @@ class CookerCollectFiles(object): | |||
| 1759 | bbmask = config.getVar('BBMASK', True) | 1759 | bbmask = config.getVar('BBMASK', True) |
| 1760 | 1760 | ||
| 1761 | if bbmask: | 1761 | if bbmask: |
| 1762 | # First validate the individual regular expressions and ignore any | ||
| 1763 | # that do not compile | ||
| 1764 | bbmasks = [] | ||
| 1765 | for mask in bbmask.split(): | ||
| 1766 | try: | ||
| 1767 | re.compile(mask) | ||
| 1768 | bbmasks.append(mask) | ||
| 1769 | except sre_constants.error: | ||
| 1770 | collectlog.critical("BBMASK contains an invalid regular expression, ignoring: %s" % mask) | ||
| 1771 | |||
| 1772 | # Then validate the combined regular expressions. This should never | ||
| 1773 | # fail, but better safe than sorry... | ||
| 1774 | bbmask = "|".join(bbmasks) | ||
| 1762 | try: | 1775 | try: |
| 1763 | bbmask_compiled = re.compile(bbmask) | 1776 | bbmask_compiled = re.compile(bbmask) |
| 1764 | except sre_constants.error: | 1777 | except sre_constants.error: |
| 1765 | collectlog.critical("BBMASK is not a valid regular expression, ignoring.") | 1778 | collectlog.critical("BBMASK is not a valid regular expression, ignoring: %s" % bbmask) |
| 1766 | return list(newfiles), 0 | 1779 | bbmask = None |
| 1767 | 1780 | ||
| 1768 | bbfiles = [] | 1781 | bbfiles = [] |
| 1769 | bbappend = [] | 1782 | bbappend = [] |
