diff options
author | Markus Lehtonen <markus.lehtonen@linux.intel.com> | 2016-08-30 12:53:30 +0300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-09-02 18:09:49 +0100 |
commit | 3658f6d4770b9015561b33c1e24078b1713372e4 (patch) | |
tree | a663999a4ff3fb1be6202ec7efae506ae56dbb6f /bitbake | |
parent | 412a26e154fb70473f2d96283f383aebce8f8e5e (diff) | |
download | openembedded-core-contrib-3658f6d4770b9015561b33c1e24078b1713372e4.tar.gz |
bitbake: cookerdata/ast: Fail gracefully if event handler function is not found
[YOCTO #10186]
(Bitbake rev: 107c47c4e6de6a596cf1aeca5c18dbc1c5b44dc4)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/cookerdata.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/parse/ast.py | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/bitbake/lib/bb/cookerdata.py b/bitbake/lib/bb/cookerdata.py index fa1de7a22f..bf9bfbf931 100644 --- a/bitbake/lib/bb/cookerdata.py +++ b/bitbake/lib/bb/cookerdata.py @@ -357,6 +357,9 @@ class CookerDataBuilder(object): # We register any handlers we've found so far here... for var in data.getVar('__BBHANDLERS', False) or []: handlerfn = data.getVarFlag(var, "filename", False) + if not handlerfn: + parselog.critical("Undefined event handler function '%s'" % var) + sys.exit(1) handlerln = int(data.getVarFlag(var, "lineno", False)) bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask", True) or "").split(), handlerfn, handlerln) diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index d7185b1664..fa83b18981 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py @@ -344,6 +344,8 @@ def finalize(fn, d, variant = None): for var in d.getVar('__BBHANDLERS', False) or []: # try to add the handler handlerfn = d.getVarFlag(var, "filename", False) + if not handlerfn: + bb.fatal("Undefined event handler function '%s'" % var) handlerln = int(d.getVarFlag(var, "lineno", False)) bb.event.register(var, d.getVar(var, False), (d.getVarFlag(var, "eventmask", True) or "").split(), handlerfn, handlerln) |