From: Aaron Schulz Date: Thu, 20 Mar 2008 22:18:40 +0000 (+0000) Subject: Check extension of key too, for the off chance of collisions X-Git-Tag: 1.31.0-rc.0~48912 X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=commitdiff_plain;h=130dc0d74e7c40dbd5bf7d1d77ff45bad7e6d40d;p=lhc%2Fweb%2Fwiklou.git Check extension of key too, for the off chance of collisions --- diff --git a/includes/filerepo/LocalRepo.php b/includes/filerepo/LocalRepo.php index 8a8bba2df3..9377b56b2a 100644 --- a/includes/filerepo/LocalRepo.php +++ b/includes/filerepo/LocalRepo.php @@ -49,11 +49,12 @@ class LocalRepo extends FSRepo { array( 'fa_storage_group' => 'deleted', 'fa_storage_key' => $key ), __METHOD__, array( 'FOR UPDATE' ) ); if( !$inuse ) { - $sha1 = substr( $key, 0, strcspn( $key, '.' ) ); + $sha1 = substr( $key, 0, strcspn($key,'.') ); + $ext = substr( $key, strcspn($key,'.') ); $inuse = $dbw->selectField( 'oldimage', '1', - array( 'oi_sha1' => $sha1, - 'oi_deleted & '.File::DELETED_FILE => File::DELETED_FILE ), - __METHOD__, array( 'FOR UPDATE' ) ); + array( 'oi_sha1' => $sha1, "oi_archive_name LIKE '%{$ext}'", + 'oi_deleted & '.File::DELETED_FILE => File::DELETED_FILE ), + __METHOD__, array( 'FOR UPDATE' ) ); } if ( !$inuse ) { wfDebug( __METHOD__ . ": deleting $key\n" );