parser: Validate $length in padleft/padright parser functions
authorKunal Mehta <legoktm@member.fsf.org>
Sun, 10 Jun 2018 18:09:07 +0000 (11:09 -0700)
committerKunal Mehta <legoktm@member.fsf.org>
Sun, 10 Jun 2018 18:20:13 +0000 (11:20 -0700)
$length is user input, so cast it to an int before passing it to min().
If there is nothing to add at that point, return immediately.

In PHP 7.1+ this raised a warning of "A non-numeric value encountered"
because min() will return the junk value, returning a string. Then we
try and subtract an int from it (return value of mb_strlen()),
triggering the warning.

Added a parser test to verify the behavior, and confirmed that it
triggers warnings without the patch.

Bug: T180403
Change-Id: I614750962104f6251a864519035366ac9798fc0f


No differences found