From 338b12dc0430942c2b62fd70746b2d1a1560e0d2 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Sat, 18 Apr 2020 19:30:07 +0200 Subject: [PATCH] mxqd: Check prerequisites --- mxqd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mxqd.c b/mxqd.c index 81eb514d..df1f07e9 100644 --- a/mxqd.c +++ b/mxqd.c @@ -44,6 +44,7 @@ #include "mxqd_control.h" #include "keywordset.h" +#include "parser.tab.h" #ifndef MXQ_INITIAL_PATH # define MXQ_INITIAL_PATH "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" @@ -1421,6 +1422,19 @@ static int server_is_qualified(struct mxq_server *server, struct mxq_group *grou return 0; } + if (*group->prerequisites != 0) { + struct parser_context parser_context = { + .input = group->prerequisites, + .tags = server->prerequisites, + .pos=0, + .result = 0, + }; + if (yyparse(&parser_context)) + return 0; // syntax error in expression + if (parser_context.result == 0) + return 0; // avaluated to false + } + return (1); }