From 9cba8ec0eb36cef648bdee23e517dabec9e4dc20 Mon Sep 17 00:00:00 2001 From: Gregory Duchatelet <greg@easyflirt.com> Date: Mon, 25 Jul 2016 17:31:50 +0200 Subject: [PATCH] Comments in variable assignment is not allowed --- chkcrontab_lib.py | 8 +++++++- tests/test_crontab.disable | 7 ++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/chkcrontab_lib.py b/chkcrontab_lib.py index 12778cd..54cc703 100755 --- a/chkcrontab_lib.py +++ b/chkcrontab_lib.py @@ -681,6 +681,11 @@ class CronLineAssignment(object): 'Variable assignments in crontabs are not like shell.' ' $VAR is not expanded.') + if re.match('".+" ?#', self.variable) or re.match('[^"].*#', self.variable): + log.LineError(log.MSG_COMMENT, + 'Variable assignments in crontabs are not like shell.' + ' # comment is not allowed.') + class CronLineTimeAction(object): """Checks cron lines that specify a time and an action. @@ -881,7 +886,8 @@ class LogCounter(object): 'QUOTE_VALUES', 'SHELL_VAR', 'USER_NOT_FOUND', - 'HOURS_NOT_MINUTES')) + 'HOURS_NOT_MINUTES', + 'COMMENT')) def __init__(self): """Inits LogCounter.""" diff --git a/tests/test_crontab.disable b/tests/test_crontab.disable index 6fac9b1..9808b33 100644 --- a/tests/test_crontab.disable +++ b/tests/test_crontab.disable @@ -24,6 +24,11 @@ OK_EMPTY="" BAD_SPACE= OK_SPACE=" " +# disable fail 1 for comment in variable assignment. +NO_COMMENT="something" # comment +NO_COMMENT=something # comment +NO_COMMENT="something # comment" + # disable warn 1 for bad time spec. * 3 * * * root Warn for hours not minutes # disable fail 1 for bad time spec. @@ -74,7 +79,7 @@ OK_SPACE=" " 1,4,6,*/5 */3,2,7 * * mOn-Fri root Good Day Range 1,4,6,*/5 */3,2,7 * * mOn-Fri/2 root Good Day Range Step # chkcrontab: enable-msg=FIELD_VALUE_ERROR -# FAIL 1 for bad time spec. +# FAIL 3 for bad time spec. 1,4,6,*/5 */3,2,7 * * mOn/2 root Bad Day Step 1,4,6,*/5 */3,2,7 * * mOn-Fri/8 root Good Day Range Step # disable warn 1 for probable missing user. -- GitLab