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;