Ticket #2531 (closed Patches: fixed)
Workaround for broken remove() broken
|Reported by:||Niklas Angare <li51ckf02@…>||Owned by:||bemandawes|
|Version:||Boost Development Trunk||Severity:||Problem|
operations_test fails on QNX 6.4.0 with:
Warning: line 820 exception reports default_error_condition().value() 1, should be 93
Line 821 also fails with boost::filesystem::remove: Operation not permitted.
The problem is that a workaround for QNX and other OSes in posix_remove() compares the return value of unlink() against EPERM instead of comparing errno against EPERM.
Could it ever have worked? EPERM is typically 1 while the return value from unlink() in case of failure is typically -1.
The attached patch resolves the issue and the operations_test test now passes. As a side note, the test also passes fully with the workaround disabled on QNX 6.4.0.