Modify

Ticket #9092 (closed Bugs: fixed)

Opened 3 years ago

Last modified 6 weeks ago

Unique insertion with hint bug when inserting ordered non-unique sequence

Reported by: igaztanaga Owned by: igaztanaga
Milestone: Boost 1.55.0 Component: container
Version: Boost 1.54.0 Severity: Problem
Keywords: flat_tree insertion with hint Cc: benpope81@…

Description

As reported in  http://permalink.gmane.org/gmane.comp.lib.boost.devel/243830, inserting an ordered non-unique sequence in flat_set provokes a crash. The problem lies in function

priv_insert_unique_prepare (const_iterator pos, const value_type& val, insert_commit_data &commit_data)

where an incorrect iterator is returned when the hint points to a one-past an equivalent element.

Attachments

Change History

comment:1 Changed 3 years ago by igaztanaga

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

(In [85612]) Fixes #9092

comment:2 Changed 6 weeks ago by anonymous

Hello!

I got same problem in boost 1.48 and managed to write unit-test with fixed input sequence. Thought it would be good to put and adapt this unit-test in boost.

Code:

        TEST(BoostFlatSet, ShouldNotCrash_WithCopyAndInsert_OfOrderedNonUniqueSequence)
	{		
		std::vector<size_t> test_numbers = boost::assign::list_of(4)(6)(8)(11)(13)(18)(18)(24)(26)(28)(31)(33)(38);

		boost::container::flat_set<size_t> output; 
		EXPECT_NO_FATAL_FAILURE(boost::copy(test_numbers, std::inserter(output, output.end())));
	}

Thanks!

Roman Vlasov

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.