From 03f8c9d9f91ac9efe54e22e78575e4a248cfa62f Mon Sep 17 00:00:00 2001 From: Lee Chee Yang Date: Thu, 5 Nov 2020 08:59:21 +0800 Subject: bitbake: BBHandler: prompt error when task name contain expression Task name contain expresion (eg, do_foo_remove_bar) can cause fatal error. Check for naming before addtask. Prompt with understandable error message when expression found in task name. [YOCTO #8805] (Bitbake rev: 5b4a5bb0960386f9c524c220e43a16e60e38964d) Signed-off-by: Lee Chee Yang Signed-off-by: Richard Purdie --- bitbake/lib/bb/parse/parse_py/BBHandler.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'bitbake') diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py index 215f940b60..8a520e3071 100644 --- a/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py @@ -13,7 +13,7 @@ # import re, bb, os -import bb.build, bb.utils +import bb.build, bb.utils, bb.data_smart from . import ConfHandler from .. import resolve_file, ast, logger, ParseError @@ -233,6 +233,10 @@ def feeder(lineno, s, fn, root, statements, eof=False): if taskexpression.count(word) > 1: logger.warning("addtask contained multiple '%s' keywords, only one is supported" % word) + # Check and warn for having task with exprssion as part of task name + for te in taskexpression: + if any( ( "%s_" % keyword ) in te for keyword in bb.data_smart.__setvar_keyword__ ): + raise ParseError("Task name '%s' contains a keyword which is not recommended/supported.\nPlease rename the task not to include the keyword.\n%s" % (te, ("\n".join(map(str, bb.data_smart.__setvar_keyword__)))), fn) ast.handleAddTask(statements, fn, lineno, m) return -- cgit v1.2.3-54-g00ecf