MS09-035 breaks the std::vector template class

MS09-035 breaks the std::vector template class

Post by UGhpb » Sat, 01 Aug 2009 03:59:01


I was wondering if anyone else has the same problem after installing the
patch to Visual Studio 2008 SP1 that fixes the ATL security problem discussed
in KB971092. After installing this patch, we receive the following errors
when trying to build a project that uses the std::vector template class:

1>C:\VisualStudio2008\VC\include\xutility(2764) : error C2039: '_Swap_adl' :
is not a member of 'std'
1> C:\VisualStudio2008\VC\include\xutility(2777) : see reference to
function template instantiation '_BidIt2
std::_Move_backward_opt<_BidIt1,std::basic_string<_Elem,_Traits,_Ax>*,std::forward_iterator_tag>(_BidIt1,_BidIt1,_BidIt2,_InOutItCat,std::_Swap_move_tag,std::_Range_checked_iterator_tag)' being compiled
1> with
1> [
1>
_BidIt2=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *,
1>
_BidIt1=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *,
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>,
1> _InOutItCat=std::forward_iterator_tag
1> ]
1> C:\VisualStudio2008\VC\include\xutility(3696) : see reference to
function template instantiation '_BidIt2
std::_Move_backward_opt<std::basic_string<_Elem,_Traits,_Ax>*,_BidIt2>(_BidIt1,_BidIt1,_BidIt2,std::random_access_iterator_tag,std::_Swap_move_tag,std::_Range_checked_iterator_tag)' being compiled
1> with
1> [
1>
_BidIt2=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *,
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>,
1>
_BidIt1=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *
1> ]
1> C:\VisualStudio2008\VC\include\vector(1244) : see reference to
function template instantiation '_BidIt2
stdext::_Unchecked_move_backward<std::basic_string<_Elem,_Traits,_Ax>*,std::basic_string<_Elem,_Traits,_Ax>*>(_BidIt1,_BidIt1,_BidIt2)' being compiled
1> with
1> [
1>
_BidIt2=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *,
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>,
1>
_BidIt1=std::basic_string<char,std::char_traits<char>,std::allocator<char>> *
1> ]
1> C:\VisualStudio2008\VC\include\vector(1158) : while compiling
class template member function 'void
std::vector<_Ty>::_Insert_n(std::_Vector_const_iterator<_Ty,_Alloc>,unsigned
int,const _Ty &)'
1> with
1> [
1> _Ty=std::string,
1> _Alloc=std::allocator<std::string>
1> ]

After looking more closely, I noticed that the vector header file had a file
date of 7/19/2007, which is older than the version of this file included with
the base SP1 (06/04/2008).

Has anyone else seen this problem?
 
 
 

MS09-035 breaks the std::vector template class

Post by Brian Mut » Sat, 01 Aug 2009 05:22:33

http://www.yqcomputer.com/

Brian