Merge pull request #57509 from nextcloud/fix/use-strict-array-search
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run

Use strict array search
This commit is contained in:
Ferdinand Thiessen 2026-01-13 15:22:20 +01:00 committed by GitHub
commit 0fa396d0b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 16 additions and 15 deletions

View file

@ -123,7 +123,7 @@ class TagsPlugin extends \Sabre\DAV\ServerPlugin {
$isFav = false;
$tags = $this->getTags($fileId);
if ($tags) {
$favPos = array_search(self::TAG_FAVORITE, $tags);
$favPos = array_search(self::TAG_FAVORITE, $tags, true);
if ($favPos !== false) {
$isFav = true;
unset($tags[$favPos]);

View file

@ -242,11 +242,11 @@ class PersonalInfo implements ISettings {
$languages = $this->l10nFactory->getLanguages();
// associate the user language with the proper array
$userLangIndex = array_search($userConfLang, array_column($languages['commonLanguages'], 'code'));
$userLangIndex = array_search($userConfLang, array_column($languages['commonLanguages'], 'code'), true);
$userLang = $languages['commonLanguages'][$userLangIndex];
// search in the other languages
if ($userLangIndex === false) {
$userLangIndex = array_search($userConfLang, array_column($languages['otherLanguages'], 'code'));
$userLangIndex = array_search($userConfLang, array_column($languages['otherLanguages'], 'code'), true);
$userLang = $languages['otherLanguages'][$userLangIndex];
}
// if user language is not available but set somehow: show the actual code as name

View file

@ -141,7 +141,7 @@ class Helper {
*/
public function deleteServerConfiguration($prefix) {
$prefixes = $this->getServerConfigurationPrefixes();
$index = array_search($prefix, $prefixes);
$index = array_search($prefix, $prefixes, true);
if ($index === false) {
return false;
}

View file

@ -447,7 +447,7 @@ abstract class AbstractMapping {
DELETE FROM `' . $this->getTableName() . '`
WHERE `owncloud_name` = ?');
$dn = array_search($name, $this->cache);
$dn = array_search($name, $this->cache, true);
if ($dn !== false) {
unset($this->cache[$dn]);
}

View file

@ -71,7 +71,7 @@ class DeletedUsersIndexTest extends \Test\TestCase {
// ensure the different uids were used
foreach ($deletedUsers as $deletedUser) {
$this->assertTrue(in_array($deletedUser->getOCName(), $uids));
$i = array_search($deletedUser->getOCName(), $uids);
$i = array_search($deletedUser->getOCName(), $uids, true);
$this->assertNotFalse($i);
unset($uids[$i]);
}

View file

@ -82,7 +82,7 @@ class UserLiveStatusListener implements IEventListener {
// If the emitted status is more important than the current status
// treat it as outdated and update
if (array_search($event->getStatus(), StatusService::PRIORITY_ORDERED_STATUSES) < array_search($userStatus->getStatus(), StatusService::PRIORITY_ORDERED_STATUSES)) {
if (array_search($event->getStatus(), StatusService::PRIORITY_ORDERED_STATUSES, true) < array_search($userStatus->getStatus(), StatusService::PRIORITY_ORDERED_STATUSES, true)) {
$needsUpdate = true;
}

View file

@ -97,7 +97,7 @@ trait Trashbin {
$elementsSimplified = $this->simplifyArray($elementRows);
foreach ($elementsSimplified as $expectedElement) {
$expectedElement = ltrim($expectedElement, '/');
if (array_search($expectedElement, $trashContent) === false) {
if (array_search($expectedElement, $trashContent, true) === false) {
Assert::fail("$expectedElement" . ' is not in trash listing');
}
}
@ -121,7 +121,7 @@ trait Trashbin {
return $item['{http://nextcloud.org/ns}trashbin-filename'];
}, $elementList));
if (array_search($name, array_values($trashContent)) === false) {
if (array_search($name, array_values($trashContent), true) === false) {
Assert::fail("$name" . ' is not in trash listing');
}
}

View file

@ -438,7 +438,7 @@ trait WebDav {
}
foreach ($table->getRows() as $row) {
$key = array_search($row[0], $foundTypes);
$key = array_search($row[0], $foundTypes, true);
if ($key === false) {
throw new \Exception('Expected type ' . $row[0] . ' not found');
}

View file

@ -970,7 +970,7 @@ class OC {
if (empty($restrictions)) {
continue;
}
$key = array_search($group->getGID(), $restrictions);
$key = array_search($group->getGID(), $restrictions, true);
unset($restrictions[$key]);
$restrictions = array_values($restrictions);
if (empty($restrictions)) {

View file

@ -354,7 +354,7 @@ class AccountManager implements IAccountManager {
protected function addMissingDefaultValues(array $userData, array $defaultUserData): array {
foreach ($defaultUserData as $defaultDataItem) {
// If property does not exist, initialize it
$userDataIndex = array_search($defaultDataItem['name'], array_column($userData, 'name'));
$userDataIndex = array_search($defaultDataItem['name'], array_column($userData, 'name'), true);
if ($userDataIndex === false) {
$userData[] = $defaultDataItem;
continue;

View file

@ -250,7 +250,7 @@ class Local extends \OC\Files\Storage\Common {
return false;
}
$content = scandir($parentPath, SCANDIR_SORT_NONE);
return is_array($content) && array_search(basename($fullPath), $content) !== false;
return is_array($content) && array_search(basename($fullPath), $content, true) !== false;
} else {
return file_exists($this->getSourcePath($path));
}

View file

@ -654,7 +654,7 @@ class Factory implements IFactory {
// put appropriate languages into appropriate arrays, to print them sorted
// common languages -> divider -> other languages
if (in_array($lang, self::COMMON_LANGUAGE_CODES)) {
$commonLanguages[array_search($lang, self::COMMON_LANGUAGE_CODES)] = $ln;
$commonLanguages[array_search($lang, self::COMMON_LANGUAGE_CODES, true)] = $ln;
} else {
$otherLanguages[] = $ln;
}

View file

@ -645,7 +645,8 @@ class Tags implements ITags {
return array_search(strtolower($needle), array_map(
function ($tag) use ($mem) {
return strtolower(call_user_func([$tag, $mem]));
}, $haystack)
}, $haystack),
true
);
}