From 130dc0d74e7c40dbd5bf7d1d77ff45bad7e6d40d Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Thu, 20 Mar 2008 22:18:40 +0000 Subject: [PATCH] Check extension of key too, for the off chance of collisions --- includes/filerepo/LocalRepo.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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" ); -- 2.20.1