[SERVER-9736] FilteringClientCursor ctor bug Created: 21/May/13  Updated: 14/Apr/16  Resolved: 02/Mar/15

Status: Closed
Project: Core Server
Component/s: Internal Client
Affects Version/s: 2.4.3
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Vladimir Phillips Assignee: Tyler Brock
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:

 Description   

FilteringClientCursor::FilteringClientCursor( auto_ptr<DBClientCursor> cursor , const BSONObj filter )
: _matcher( filter ) , _cursor( cursor ) , _pcmData( NULL ), _done( cursor.get() == 0 ) {
}

The order of calling copy constructor for _cursor and evaluation of the expression ( cursor.get() == 0 ) above is not guaranteed. The problem is that copy constructor for auto_ptr resets the original.



 Comments   
Comment by Tyler Brock [ 02/Mar/15 ]

This has apparently gone away in 3.x, I don't see it in the code anywhere. It used to be defined and used used in part of parallel.h and parallel.cpp but is no longer there.

Generated at Thu Feb 08 03:21:18 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.