mirror of
https://github.com/nextcloud/server.git
synced 2026-10-09 21:51:10 +02:00
When copying a directory, copy() discarded the return values of its recursive calls and always returned true. rename() relies on that value, so a failed copy still led to rmdir() on the source: every file in the directory was deleted, the destination stayed empty, and the UI reported success. This is reachable whenever a provider rejects CopyObject for objects it otherwise serves — Hetzner Object Storage answers 501 NotImplemented for SSE-C encrypted objects, which makes every single child copy fail. Signed-off-by: Robert Niederreiter <rnix@squarewave.at>