1
0
Fork 0

Prevent null pointer dereference when checking program args

First parameter to function 'strchr' is marked a nonnull. If null is
passed as args there's no point in looking for flags.  This function is
always used in the beginning of all internal macros through HELP macro
to detect /? flag.
This commit is contained in:
Patryk Obara 2020-03-01 05:13:21 +01:00 committed by Patryk Obara
parent 2bbe181ccb
commit 716acd09e8

View file

@ -123,11 +123,13 @@ char * lowcase(char * str) {
return str;
}
bool ScanCMDBool(char * cmd,char const * const check) {
char * scan=cmd;size_t c_len=strlen(check);
while ((scan=strchr(scan,'/'))) {
bool ScanCMDBool(char * cmd, char const * const check)
{
if (cmd == nullptr)
return false;
char *scan = cmd;
const size_t c_len = strlen(check);
while ((scan = strchr(scan,'/'))) {
/* found a / now see behind it */
scan++;
if (strncasecmp(scan,check,c_len)==0 && (scan[c_len]==' ' || scan[c_len]=='\t' || scan[c_len]=='/' || scan[c_len]==0)) {