Bug deleting entire contents of ZIP

Discussion of bugs and problems found in Altap Salamander. In your reports, please be as descriptive as possible, and report one incident per report. Do not post crash reports here, send us the generated bug report by email instead, please.
Posts: 4
Joined: 19 Dec 2017, 21:58

Bug deleting entire contents of ZIP

Post by maroon » 01 Apr 2018, 05:10

A potentially nasty bug in Salamander 3.08. It happens when you move a filename on top of the same filename that's not the exact same case. To reproduce:

1. Find any zip containing more than 1 filename where at least 1 filename has more than 1 lower-case letter.
2. Make a copy of the zip and work ONLY with the copy.
3. Make a blank folder in the opposite panel, and Unzip into the other panel any file where at least 1 letter is lower-case, preferrable entirely in lower-case.
4. Use F2 in the opposite panel to rename the extracted file, changing any lower-case letter to its capital-letter equivalent.
5. Now use F5 to copy the extracted file back into the .zip, and answer yes when it asks if you want to overwrite. You'll notice that the other panel continues to show the filename inside the ZIP as the original case.
6. Now TAB to the zip's panel, and highlight the file you just updated and use Shift+Del to delete it.
7. The ZIP now deletes all contents, including those of subfolders which weren't touched in this experiment. The ZIP remains with filesize 0 as if you had highlighted all contents. The Shift+Del prompt only asks about deleting the 1 file.

Navigating out-then-in between Steps 4-5 does not affect this issue, but out-then-in between Steps 5-6 does prevent the other files from deleting, and this time the filename does show the altered filename case inside the ZIP, and deleting it won't cause the the entire ZIP to go poof.

I remember behavior of the old PKZIP not doing like this, where if you ZIPPED an upper-case filename on top of a lower-case filename, the ZIP would update to the new contents, but retained the case-spelling already present in the ZIP.