[wp-trac] [WordPress Trac] #42437: Thumbnails can overwrite other uploads if filename matches

WordPress Trac noreply at wordpress.org
Wed Dec 4 22:21:20 UTC 2019


#42437: Thumbnails can overwrite other uploads if filename matches
--------------------------+-----------------------
 Reporter:  Viper007Bond  |       Owner:  pbiron
     Type:  defect (bug)  |      Status:  assigned
 Priority:  normal        |   Milestone:  5.3.1
Component:  Upload        |     Version:  4.8.3
 Severity:  normal        |  Resolution:
 Keywords:  needs-patch   |     Focuses:
--------------------------+-----------------------

Comment (by pbiron):

 Replying to [comment:36 azaozz]:
 > Replying to [comment:35 pbiron]:
 >
 > > The revised patch:
 > >
 > > 1. Adds a number to any file that could cause a collision with sub-
 sizes.
 > > 2. Then, it does the same collision detection that has always existed.
 > > 3. An finally, it checks collisions with existing files (e.g., sub-
 size files uploaded before the patch was applied).  That last check
 addresses [https://core.trac.wordpress.org/ticket/42437#comment:18
 @blobfolio]'s comment.
 >
 > Sounds good. I'm still a bit unsure about 1, but it seems like a good
 "preventive" mechanism. It means that when an image like `picture-
 scaled.jpg` is uploaded, it will be renamed to `picture-scaled-1.jpg`.
 Then when generating the sub-sizes there will be `picture-
 scaled-1-scaled.jpg`, `picture-scaled-1-300x200.jpg`, `picture-
 scaled-1-1024x768.jpg`, etc.

 1 was your idea :-)

 > Also perhaps replace uses of `array_filter()` with a callback with a
 simple `foreach`? The difference is `array_filter()` will run through the
 whole array no matter what, then return the filtered array. A callback can
 return as soon as a match is found. Will try to test this with different
 array lengths to see which is better/faster.

 Not sure what you mean by "callback" in this context.  But, yes, could
 probably be sped up...especially when `get_option(
 'uploads_use_yearmonth_folders' )` returns false.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/42437#comment:37>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list