1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 00:02:40 +01:00

Fix "strpos(): Non-string needles will be interpreted as strings" in PhutilSortVector

Summary:
Code checking if the needle string `$value` is somewhere in the haystack `"\0"` makes no sense for a single byte (if it did, then `strcmp` instead of `strpos` should have been used) and the created exception output implies that it's supposed to check that a string does not contain NULL bytes.
Thus switch the order of arguments passed to `strpos()` to be correct.

```
EXCEPTION: (RuntimeException) strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior at [<arcanist>/src/error/PhutilErrorHandler.php:261]
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer, array) called at [<arcanist>/src/error/PhutilErrorHandler.php:261]
  #1 <#2> strpos(string, integer) called at [<arcanist>/src/utils/PhutilSortVector.php:33]
```

Closes T15755

Test Plan: Read the surrounding code carefully.

Reviewers: O1 Blessed Committers, valerio.bozzolan, speck

Reviewed By: O1 Blessed Committers, valerio.bozzolan, speck

Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15755

Differential Revision: https://we.phorge.it/D25557
This commit is contained in:
Andre Klapper 2024-03-22 11:25:57 +01:00
parent f6261dc614
commit ef73b12b58

View file

@ -30,7 +30,7 @@ final class PhutilSortVector
} }
public function addString($value) { public function addString($value) {
if (strlen($value) && (strpos("\0", $value) !== false)) { if (strlen($value) && (strpos($value, "\0") !== false)) {
throw new Exception( throw new Exception(
pht( pht(
'String components of a sort vector must not contain NULL bytes.')); 'String components of a sort vector must not contain NULL bytes.'));