zotero/chrome/content
Abe Jellinek 16547f64c2 renameAttachmentFile: Check rename() return value
And actually return -1 if it returns false.

Before this fix, attempting to rename an attachment file to a name that already
exists on disk would never return -1 as the docs say it should. Instead:

1. rename() would fail and return false
2. newName would be set to false
3. renameAttachmentFile() would pass false as the second argument to
   OS.Path.join()
4. OS.Path.join() would ignore it because it was falsy and return the attachment
   directory path without any modification
5. relinkAttachmentFile() would be called with path set to the attachment
   directory
6. relinkAttachmentFile() would notice that path's dirname wasn't the attachment
   directory - it was the attachment directory's parent - and attempt to copy it
   and its contents, recursively, into itself, using copyToFollowingLinks()

...which created a directory structure on disk over 100 directories deep -
not deeper only because the OS started returning errors due to paths exceeding
32,767 characters (the limit on my filesystem).
2023-07-27 12:24:32 -04:00
..
scaffold Scaffold: Automatically load last opened translator 2023-06-24 15:00:57 -07:00
zotero renameAttachmentFile: Check rename() return value 2023-07-27 12:24:32 -04:00
zotero-platform making toolbar accessible to the keyboard - initial conversion (#3188) 2023-07-05 03:17:07 -04:00