Modify

Ticket #5653 (closed Bugs: fixed)

Opened 3 years ago

Last modified 2 years ago

recursive_directory_iterator(error_code) can still throw filesystem_error

Reported by: Geurt Vos <geurt.vos@…> Owned by: bemandawes
Milestone: To Be Determined Component: filesystem
Version: Boost 1.46.1 Severity: Problem
Keywords: Cc:

Description

internally recursive_directory_iterator uses other filesystem facilities (such as is_directory and is_symlink) without passing the system::error_code argument. If they fail, they will throw filesystem_error.

Example on Linux (see ticket #5652):

int main() {

try {

error_code ec; for (recursive_directory_iterator i(".", ec); i != recursive_directory_iterator(); ++i) ;

} catch (const std::exception& e) {

std::cout << ">> " << e.what() << std::endl;

}

}

$ ln -s mybadlink mybadlink $ ./test

boost::filesystem::status: Too many levels of symbolic links: "./mybadlink"

Attachments

Change History

comment:1 Changed 2 years ago by bemandawes

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

(In [76667]) Fix #5653, recursive_directory_iterator(error_code) can still throw filesystem_error. Fix a second bug, discovered while testing 5653; recursive_directory_iterator::increment with error_code argument was not reporting the end iterator.

View

Add a comment

Modify Ticket

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


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

 
Note: See TracTickets for help on using tickets.