[Bug libstdc++/83625] New: std::experimental::filesystem::remove lstat()'s before remove() instead of checking errno
chillermillerlong at hotmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Dec 30 02:15:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83625
Bug ID: 83625
Summary: std::experimental::filesystem::remove lstat()'s before
remove() instead of checking errno
Product: gcc
Version: 7.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: chillermillerlong at hotmail dot com
Target Milestone: ---
libstdc++'s std::experimental::filesystem::remove() function currently seems to
be doing an lstat() to check if the path exists before calling remove().
(https://github.com/gcc-mirror/gcc/blob/gcc-7_2_0-release/libstdc%2B%2B-v3/src/filesystem/ops.cc#L1235-L1249)
This could cause the function to report an error if the path is deleted between
the stat() and remove() instead of returning false. Would it make sense to
always attempt remove() and return false if errno == ENOENT instead?
More information about the Gcc-bugs
mailing list