From: Markus Lehtonen Date: Tue, 30 Aug 2016 09:53:30 +0000 (+0300) Subject: cookerdata/ast: Fail gracefully if event handler function is not found X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=107c47c4e6de6a596cf1aeca5c18dbc1c5b44dc4;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git cookerdata/ast: Fail gracefully if event handler function is not found [YOCTO #10186] Signed-off-by: Markus Lehtonen Signed-off-by: Richard Purdie --- diff --git a/lib/bb/cookerdata.py b/lib/bb/cookerdata.py index fa1de7a22f6..bf9bfbf931c 100644 --- a/lib/bb/cookerdata.py +++ b/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/lib/bb/parse/ast.py b/lib/bb/parse/ast.py index d7185b1664d..fa83b189814 100644 --- a/lib/bb/parse/ast.py +++ b/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)