Opened 14 years ago

Closed 14 years ago

#2531 closed Patches (fixed)

Workaround for broken remove() broken

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

Description

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.

Attachments (1)

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

Download all attachments as: .zip

Change History (2)

by Niklas Angare <li51ckf02@…>, 14 years ago

Attachment: operations.cpp.patch added

comment:1 by Beman Dawes, 14 years ago

Resolution: fixed
Status: newclosed

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

Note: See TracTickets for help on using tickets.