From: Marko Obrovac Date: Tue, 3 Sep 2019 13:57:33 +0000 (+0200) Subject: LocalRepo: Remove leading 0 from 32-byte SHA1 keys X-Git-Tag: 1.34.0-rc.0~420 X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22auteur_infos%22%2C%22id_auteur=%24connect_id_auteur%22%29%20.%20%22?a=commitdiff_plain;h=f65beabcfd0efc7cdb6c826a27175a6e920ed878;p=lhc%2Fweb%2Fwiklou.git LocalRepo: Remove leading 0 from 32-byte SHA1 keys Bug: T230667 Change-Id: I3d9de7a92495e894b4b44b0a5b0646b6d720f7c2 --- diff --git a/includes/filerepo/LocalRepo.php b/includes/filerepo/LocalRepo.php index 5ed937f581..8e3355c8c6 100644 --- a/includes/filerepo/LocalRepo.php +++ b/includes/filerepo/LocalRepo.php @@ -180,7 +180,11 @@ class LocalRepo extends FileRepo { * @return string */ public static function getHashFromKey( $key ) { - return strtok( $key, '.' ); + $sha1 = strtok( $key, '.' ); + if ( is_string( $sha1 ) && strlen( $sha1 ) === 32 && $sha1[0] === '0' ) { + $sha1 = substr( $sha1, 1 ); + } + return $sha1; } /** diff --git a/tests/phpunit/includes/filerepo/LocalRepoTest.php b/tests/phpunit/includes/filerepo/LocalRepoTest.php index bed739bad9..ab8f2f0442 100644 --- a/tests/phpunit/includes/filerepo/LocalRepoTest.php +++ b/tests/phpunit/includes/filerepo/LocalRepoTest.php @@ -136,6 +136,7 @@ class LocalRepoTest extends MediaWikiIntegrationTestCase { [ '.e.x', 'e' ], [ '..f.x', 'f' ], [ 'g..x', 'g' ], + [ '01234567890123456789012345678901.x', '1234567890123456789012345678901' ], ]; }