Merge pull request #371 from edward-san/acs_strlen_invalid

- Fixed a crash in ACS strlen parsing with invalid argument.
This commit is contained in:
coelckers 2015-09-06 00:09:10 +02:00
commit 90d1e85aa2

View file

@ -8880,7 +8880,22 @@ scriptwait:
break;
case PCD_STRLEN:
STACK(1) = SDWORD(strlen(FBehavior::StaticLookupString (STACK(1))));
{
const char *str = FBehavior::StaticLookupString(STACK(1));
if (str != NULL)
{
STACK(1) = SDWORD(strlen(str));
break;
}
static bool StrlenInvalidPrintedAlready = false;
if (!StrlenInvalidPrintedAlready)
{
Printf(PRINT_BOLD, "Warning: ACS function strlen called with invalid string argument.\n");
StrlenInvalidPrintedAlready = true;
}
STACK(1) = 0;
}
break;
case PCD_GETCVAR: