From de6ef3936be930815140b902dfe4df4c0056441c Mon Sep 17 00:00:00 2001 From: Alexey Khromov Date: Sun, 23 Mar 2025 20:36:07 +0300 Subject: [PATCH] small fix checknodefalgs --- source/bforce/nodelist.c | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/source/bforce/nodelist.c b/source/bforce/nodelist.c index 82c1853..5e857a1 100644 --- a/source/bforce/nodelist.c +++ b/source/bforce/nodelist.c @@ -57,22 +57,23 @@ int nodelist_checkflag(const char *nodeflags, const char *flag) char *q; DEB((D_NODELIST, "nodelist: checking flag \"%s\" in flags \"%s\"", flag, nodeflags)); - - while( p = strcasestr(searchbase, flag) ) // p - found flag - { - if( (p == searchbase) || (p != searchbase && *(p-1) == ',') ) + if ( nodeflags ) { + while( p = strcasestr(searchbase, flag) ) // p - found flag { - if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) ) { - DEB((D_NODELIST, "nodelist: found flag %s", flag)); - return 0; + if( (p == searchbase) || (p != searchbase && *(p-1) == ',') ) + { + if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) ) { + DEB((D_NODELIST, "nodelist: found flag %s", flag)); + return 0; + } + if( (strchrnul(p, ':') - p) == strlen(flag) ) { + DEB((D_NODELIST, "nodelist: found flag %s", flag)); + return 0; + } } - if( (strchrnul(p, ':') - p) == strlen(flag) ) { - DEB((D_NODELIST, "nodelist: found flag %s", flag)); - return 0; - } - } - searchbase = p + 1; // avoid finding again the same + searchbase = p + 1; // avoid finding again the same + } } return 1;