Sebastian Thiel
72695d8214
mv: handle lstat() failure correctly
...
When moving a directory onto another with `git mv` various checks are
performed. One of of these validates that the destination is not existing.
When calling `lstat` on the destination path and it fails as the path
doesn't exist, some environments seem to overwrite the passed in
`stat` memory nonetheless (I observed this issue on debian 12 of x86_64,
running on OrbStack on ARM, emulated with Rosetta).
This would affect the code that followed as it would still acccess a now
modified `st` structure, which now seems to contain uninitialized memory.
`S_ISDIR(st_dir_mode)` would then typically return false causing the code
to run into a bad case.
The fix avoids overwriting the existing `st` structure, providing an
alternative that exists only for that purpose.
Note that this patch minimizes complexity instead of stack-frame size.
Signed-off-by: Sebastian Thiel <sebastian.thiel@icloud.com >
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2023-08-09 11:46:12 -07:00
..
2023-04-11 08:52:10 -07:00
2023-04-11 08:52:10 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:31 -07:00
2023-04-11 08:52:10 -07:00
2023-05-15 13:59:03 -07:00
2023-04-11 08:52:10 -07:00
2023-04-24 12:47:32 -07:00
2023-04-11 08:52:10 -07:00
2023-05-17 10:11:41 -07:00
2023-04-24 12:47:32 -07:00
2023-03-21 10:56:54 -07:00
2023-04-06 13:38:31 -07:00
2023-03-21 10:56:51 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:31 -07:00
2023-04-24 12:47:32 -07:00
2023-05-09 16:45:46 -07:00
2023-03-21 10:56:51 -07:00
2023-04-11 08:52:08 -07:00
2023-04-11 08:52:09 -07:00
2023-04-11 08:52:10 -07:00
2023-04-24 12:47:32 -07:00
2023-03-21 10:56:53 -07:00
2023-05-10 10:23:29 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:32 -07:00
2023-03-28 14:11:24 -07:00
2023-04-25 13:56:20 -07:00
2023-04-11 08:52:10 -07:00
2023-05-09 14:26:36 -07:00
2023-03-21 10:56:54 -07:00
2023-04-24 12:47:33 -07:00
2023-05-09 16:45:46 -07:00
2023-05-09 16:45:46 -07:00
2023-04-25 13:56:20 -07:00
2023-04-25 13:56:20 -07:00
2023-04-25 13:56:20 -07:00
2023-05-15 13:59:07 -07:00
2023-03-21 10:56:53 -07:00
2023-04-21 15:35:05 -07:00
2023-05-09 16:45:46 -07:00
2023-05-02 08:48:23 -07:00
2023-04-25 13:56:20 -07:00
2023-05-09 16:45:46 -07:00
2023-04-20 14:33:36 -07:00
2023-04-11 08:52:10 -07:00
2023-04-11 08:52:10 -07:00
2023-04-24 12:47:32 -07:00
2023-03-21 10:56:51 -07:00
2023-04-27 16:00:59 -07:00
2023-04-24 12:47:32 -07:00
2023-03-21 10:56:51 -07:00
2023-05-09 16:45:46 -07:00
2023-04-25 13:56:20 -07:00
2023-05-09 16:45:46 -07:00
2023-04-11 08:52:09 -07:00
2023-03-21 10:56:53 -07:00
2023-04-06 13:38:31 -07:00
2023-04-11 08:52:09 -07:00
2023-03-21 10:56:54 -07:00
2023-05-09 16:45:46 -07:00
2023-03-28 14:11:24 -07:00
2023-05-09 16:45:46 -07:00
2023-05-15 13:59:06 -07:00
2023-04-11 08:52:10 -07:00
2023-04-25 13:56:20 -07:00
2023-03-21 10:56:51 -07:00
2023-03-21 10:56:53 -07:00
2023-08-09 11:46:12 -07:00
2023-05-06 14:32:20 -07:00
2023-04-11 08:52:10 -07:00
2023-05-06 14:34:09 -07:00
2023-04-06 13:38:31 -07:00
2023-03-21 10:56:51 -07:00
2023-03-21 10:56:51 -07:00
2023-03-21 10:56:51 -07:00
2023-04-11 08:52:10 -07:00
2023-05-09 16:45:46 -07:00
2023-05-15 13:59:05 -07:00
2023-04-11 08:52:09 -07:00
2023-04-24 12:47:32 -07:00
2023-04-25 13:56:20 -07:00
2023-05-09 16:45:46 -07:00
2023-04-06 13:38:31 -07:00
2023-03-28 14:11:24 -07:00
2023-03-28 14:11:24 -07:00
2023-04-06 13:38:31 -07:00
2023-05-09 16:45:46 -07:00
2023-04-11 08:52:10 -07:00
2023-04-24 12:47:32 -07:00
2023-04-11 08:52:09 -07:00
2023-04-11 08:52:10 -07:00
2023-04-11 08:52:09 -07:00
2023-04-17 18:05:13 -07:00
2023-04-24 12:47:32 -07:00
2023-04-06 13:38:31 -07:00
2023-04-06 13:38:31 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:32 -07:00
2023-04-11 08:52:09 -07:00
2023-04-25 13:56:20 -07:00
2023-04-25 13:56:20 -07:00
2023-03-21 10:56:54 -07:00
2023-04-25 13:56:20 -07:00
2023-03-21 10:56:51 -07:00
2023-04-25 13:56:20 -07:00
2023-04-25 13:56:20 -07:00
2023-04-25 13:56:20 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:32 -07:00
2023-04-24 12:47:31 -07:00
2023-05-09 16:45:46 -07:00
2023-03-21 10:56:51 -07:00
2023-04-25 13:56:20 -07:00
2023-04-11 08:52:09 -07:00
2023-03-21 10:56:51 -07:00
2023-04-11 08:52:09 -07:00
2023-05-09 16:45:46 -07:00
2023-05-09 16:45:46 -07:00