Ticket #2531 (closed Patches: fixed)

Opened 9 years ago

Last modified 8 years ago

Workaround for broken remove() broken

Reported by: Niklas Angare <li51ckf02@…> Owned by: bemandawes
Milestone: Boost 1.38.0 Component: filesystem
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:


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.


operations.cpp.patch (410 bytes) - added by Niklas Angare <li51ckf02@…> 9 years ago.

Change History

Changed 9 years ago by Niklas Angare <li51ckf02@…>

comment:1 Changed 8 years ago by bemandawes

  • Status changed from new to closed
  • Resolution set to fixed

(In [50562]) Filesystem: Fix #2531 by applying suggested patch


Add a comment

Modify Ticket

Change Properties
<Author field>
as closed
The resolution will be deleted. Next status will be 'reopened'

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.