Binary compatibility report for the mongoDB library between 1.4.5 and 1.5.0 versions on x86
Test Info
Library Name | mongoDB |
Version #1 | 1.4.5 |
Version #2 | 1.5.0 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 1 |
Total Shared Libraries | 1 |
Total Symbols / Types | 362 / 242 |
Verdict | Incompatible (19.34%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 17 |
Removed Symbols | High | 21 |
Problems with Data Types | High | 5 |
Medium | 6 |
Low | 8 |
Problems with Symbols | High | 7 |
Medium | 0 |
Low | 1 |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Added Symbols (17)
dbclient.h,
libmongoclient.so
namespace mongo
serverAlive ( std::string const& uri )
[ symbol: _ZN5mongo11serverAliveERKSs ]
jsobj.h,
libmongoclient.so
namespace mongo
BSONObj::toString ( bool isArray ) const
[ symbol: _ZNK5mongo7BSONObj8toStringEb ]
message.h,
libmongoclient.so
namespace mongo
Listener::accepted ( int sock, SockAddr const& from )
[ symbol: _ZN5mongo8Listener8acceptedEiRKNS_8SockAddrE ]
Listener::initAndListen ( )
[ symbol: _ZN5mongo8Listener13initAndListenEv ]
MessagingPort::MessagingPort [in-charge] ( int sock, SockAddr const& farEnd )
[ symbol: _ZN5mongo13MessagingPortC1EiRKNS_8SockAddrE ]
MessagingPort::MessagingPort [in-charge] ( int timeout )
[ symbol: _ZN5mongo13MessagingPortC1Ei ]
MessagingPort::MessagingPort [not-in-charge] ( int sock, SockAddr const& farEnd )
[ symbol: _ZN5mongo13MessagingPortC2EiRKNS_8SockAddrE ]
MessagingPort::MessagingPort [not-in-charge] ( int timeout )
[ symbol: _ZN5mongo13MessagingPortC2Ei ]
MessagingPort::send ( char const* data, int len, char const* context )
[ symbol: _ZN5mongo13MessagingPort4sendEPKciS2_ ]
MessagingPort::unsafe_recv ( char* buf, int max )
[ symbol: _ZN5mongo13MessagingPort11unsafe_recvEPci ]
noUnixSocket [data]
[ symbol: _ZN5mongo12noUnixSocketE ]
sock.h,
libmongoclient.so
namespace mongo
enableIPv6 ( bool state )
[ symbol: _ZN5mongo10enableIPv6Eb ]
IPv6Enabled ( )
[ symbol: _ZN5mongo11IPv6EnabledEv ]
SockAddr::isLocalHost ( ) const
[ symbol: _ZNK5mongo8SockAddr11isLocalHostEv ]
SockAddr::SockAddr [in-charge] ( int sourcePort )
[ symbol: _ZN5mongo8SockAddrC1Ei ]
SockAddr::SockAddr [not-in-charge] ( int sourcePort )
[ symbol: _ZN5mongo8SockAddrC2Ei ]
unknownAddress [data]
[ symbol: _ZN5mongo14unknownAddressE ]
to the top
Removed Symbols (21)
dbclient.h,
libmongoclient.so
namespace mongo
DBClientPaired::masterConn ( )
[ symbol: _ZN5mongo14DBClientPaired10masterConnEv ]
error_code.hpp,
libmongoclient.so
namespace boost::system
vtable for error_category [data]
[ symbol: _ZTVN5boost6system14error_categoryE ]
exceptions.hpp,
libmongoclient.so
namespace boost
vtable for lock_error [data]
[ symbol: _ZTVN5boost10lock_errorE ]
vtable for thread_exception [data]
[ symbol: _ZTVN5boost16thread_exceptionE ]
vtable for thread_resource_error [data]
[ symbol: _ZTVN5boost21thread_resource_errorE ]
jsobj.h,
libmongoclient.so
namespace mongo
BSONObj::toString ( ) const
[ symbol: _ZNK5mongo7BSONObj8toStringEv ]
message.h,
libmongoclient.so
namespace mongo
Listener::init ( )
[ symbol: _ZN5mongo8Listener4initEv ]
Listener::listen ( )
[ symbol: _ZN5mongo8Listener6listenEv ]
MessagingPort::MessagingPort [in-charge] ( )
[ symbol: _ZN5mongo13MessagingPortC1Ev ]
MessagingPort::MessagingPort [in-charge] ( int sock, SockAddr& farEnd )
[ symbol: _ZN5mongo13MessagingPortC1EiRNS_8SockAddrE ]
MessagingPort::MessagingPort [not-in-charge] ( )
[ symbol: _ZN5mongo13MessagingPortC2Ev ]
MessagingPort::MessagingPort [not-in-charge] ( int sock, SockAddr& farEnd )
[ symbol: _ZN5mongo13MessagingPortC2EiRNS_8SockAddrE ]
MessagingPort::send ( char const* data, int const len )
[ symbol: _ZN5mongo13MessagingPort4sendEPKci ]
sp_counted_impl.hpp,
libmongoclient.so
namespace boost::detail
sp_counted_impl_p<boost::filesystem2::detail::dir_itr_imp<boost::filesystem2::path> >::dispose ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem26detail11dir_itr_impINS2_10basic_pathISsNS2_11path_traitsEEEEEE7disposeEv ]
sp_counted_impl_p<boost::filesystem2::detail::dir_itr_imp<boost::filesystem2::path> >::get_deleter ( sp_typeinfo const& p1 )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem26detail11dir_itr_impINS2_10basic_pathISsNS2_11path_traitsEEEEEE11get_deleterERKSt9type_info ]
sp_counted_impl_p<boost::filesystem2::detail::dir_itr_imp<boost::filesystem2::path> >::~sp_counted_impl_p [in-charge-deleting] ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem26detail11dir_itr_impINS2_10basic_pathISsNS2_11path_traitsEEEEEED0Ev ]
sp_counted_impl_p<boost::filesystem2::detail::dir_itr_imp<boost::filesystem2::path> >::~sp_counted_impl_p [in-charge] ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem26detail11dir_itr_impINS2_10basic_pathISsNS2_11path_traitsEEEEEED1Ev ]
sp_counted_impl_p<boost::filesystem2::filesystem_error::m_imp>::dispose ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem222basic_filesystem_errorINS2_10basic_pathISsNS2_11path_traitsEEEE5m_impEE7disposeEv ]
sp_counted_impl_p<boost::filesystem2::filesystem_error::m_imp>::get_deleter ( sp_typeinfo const& p1 )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem222basic_filesystem_errorINS2_10basic_pathISsNS2_11path_traitsEEEE5m_impEE11get_deleterERKSt9type_info ]
sp_counted_impl_p<boost::filesystem2::filesystem_error::m_imp>::~sp_counted_impl_p [in-charge-deleting] ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem222basic_filesystem_errorINS2_10basic_pathISsNS2_11path_traitsEEEE5m_impEED0Ev ]
sp_counted_impl_p<boost::filesystem2::filesystem_error::m_imp>::~sp_counted_impl_p [in-charge] ( )
[ symbol: _ZN5boost6detail17sp_counted_impl_pINS_11filesystem222basic_filesystem_errorINS2_10basic_pathISsNS2_11path_traitsEEEE5m_impEED1Ev ]
to the top
Problems with Data Types, High Severity (5)
dbclient.h
namespace mongo
[+] class DBClientConnection (1)
| Change |
Effect |
1 | Size of this class has been changed from 80 bytes to 84 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (12)
DBClientConnection::auth ( std::string const& dbname, std::string const& username, std::string const& pwd, std::string& errmsg, bool digestPassword )This method is from 'DBClientConnection' class.
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )This method is from 'DBClientConnection' class.
DBClientConnection::checkResponse ( char const* data, int nReturned )This method is from 'DBClientConnection' class.
DBClientConnection::connect ( std::string const& serverHostname, std::string& errmsg )This method is from 'DBClientConnection' class.
DBClientConnection::getServerAddress ( ) constThis method is from 'DBClientConnection' class.
DBClientConnection::isFailed ( ) constThis method is from 'DBClientConnection' class.
DBClientConnection::query ( std::string const& ns, Query&restrict query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )This method is from 'DBClientConnection' class.
DBClientConnection::say ( Message& toSend )This method is from 'DBClientConnection' class.
DBClientConnection::sayPiggyBack ( Message& toSend )This method is from 'DBClientConnection' class.
DBClientConnection::toString ( )This method is from 'DBClientConnection' class.
DBClientConnection::~DBClientConnection [in-charge] ( )This method is from 'DBClientConnection' class.
DBClientPaired::slaveConn ( )Return value (reference) has base type 'DBClientConnection'.
[+] class DBClientPaired (1)
| Change |
Effect |
1 | Size of this class has been increased from 196 bytes to 204 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighbouring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (19)
DBClientPaired::auth ( std::string const& dbname, std::string const& username, std::string const& pwd, std::string& errmsg )This method is from 'DBClientPaired' class.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )This method is from 'DBClientPaired' class.
DBClientPaired::checkResponse ( char const* data, int nReturned )This method is from 'DBClientPaired' class.
DBClientPaired::connect ( std::string hostpairstring )This method is from 'DBClientPaired' class.
DBClientPaired::connect ( std::string const& serverHostname1, std::string const& serverHostname2 )This method is from 'DBClientPaired' class.
DBClientPaired::DBClientPaired [in-charge] ( )This constructor is from 'DBClientPaired' class.
DBClientPaired::findOne ( std::string const& ns, Query query, BSONObj const* fieldsToReturn, int queryOptions )This method is from 'DBClientPaired' class.
DBClientPaired::getServerAddress ( ) constThis method is from 'DBClientPaired' class.
DBClientPaired::insert ( std::string const& ns, BSONObj&restrict obj )This method is from 'DBClientPaired' class.
DBClientPaired::insert ( std::string const& ns, std::vector<BSONObj>const& v )This method is from 'DBClientPaired' class.
DBClientPaired::isFailed ( ) constThis method is from 'DBClientPaired' class.
DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )This method is from 'DBClientPaired' class.
DBClientPaired::remove ( std::string const& ns, Query&restrict obj, bool justOne )This method is from 'DBClientPaired' class.
DBClientPaired::say ( Message& toSend )This method is from 'DBClientPaired' class.
DBClientPaired::sayPiggyBack ( Message& toSend )This method is from 'DBClientPaired' class.
DBClientPaired::slaveConn ( )This method is from 'DBClientPaired' class.
DBClientPaired::toString ( )This method is from 'DBClientPaired' class.
DBClientPaired::update ( std::string const& ns, Query&restrict query, BSONObj&restrict obj, bool upsert, bool multi )This method is from 'DBClientPaired' class.
DBClientPaired::~DBClientPaired [in-charge] ( )This method is from 'DBClientPaired' class.
message.h
namespace mongo
[+] class MessagingPort (1)
| Change |
Effect |
1 | Size of this class has been increased from 32 bytes to 148 bytes. | 1) An object of this class can be allocated by the applications and old size will be hardcoded at the compile time. Call of any exported constructor will break the memory of neighbouring objects on the stack or heap. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (11)
MessagingPort::call ( Message& toSend, Message& response )This method is from 'MessagingPort' class.
MessagingPort::connect ( SockAddr& farEnd )This method is from 'MessagingPort' class.
MessagingPort::piggyBack ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::recv ( char* data, int max )This method is from 'MessagingPort' class.
MessagingPort::recv ( Message& m )This method is from 'MessagingPort' class.
MessagingPort::remotePort ( )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )This method is from 'MessagingPort' class.
MessagingPort::say ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::shutdown ( )This method is from 'MessagingPort' class.
MessagingPort::~MessagingPort [in-charge] ( )This method is from 'MessagingPort' class.
sock.h
namespace mongo
[+] class ListeningSockets (1)
| Change |
Effect |
1 | Size of this class has been changed from 28 bytes to 8 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (1)
ListeningSockets::get ( ) [static]Return value (pointer) has base type 'ListeningSockets'.
[+] class SockAddr (1)
| Change |
Effect |
1 | Size of this class has been changed from 20 bytes to 132 bytes. | 1) The class has only inline or auto-generated constructors which will be copied to applications at compile time and will allocate an older memory layout. Call of any exported method of this class may access a memory outside the allocated objects or inside the older memory structure and result in crash or incorrect behavior of applications. 2) The memory layout and size of subclasses will be changed. |
[+] affected symbols (19)
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
DBClientConnection::say ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientConnection::sayPiggyBack ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
DBClientPaired::say ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientPaired::sayPiggyBack ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
LastErrorHolder::startRequest ( Message& m )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
LastErrorHolder::startRequest ( Message& m, LastError* connectionOwned )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
MessagingPort::call ( Message& toSend, Message& response )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
MessagingPort::connect ( SockAddr& farEnd )1st parameter 'farEnd' (reference) has base type 'SockAddr'.
MessagingPort::piggyBack ( Message& toSend, int responseTo )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
MessagingPort::recv ( char* data, int max )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::recv ( Message& m )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
MessagingPort::remotePort ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::reply ( Message& received, Message& response )Field 'received−>from' in 1st parameter 'received' (reference) has type 'SockAddr'.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )Field 'received−>from' in 1st parameter 'received' (reference) has type 'SockAddr'.
MessagingPort::say ( Message& toSend, int responseTo )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
MessagingPort::shutdown ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::~MessagingPort [in-charge] ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
to the top
Problems with Symbols, High Severity (7)
jsobj.h,
libmongoclient.so
namespace mongo
[+] BSONObj::toString ( ) const (1)
changed to:BSONObj::toString ( bool isArray ) const
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK5mongo7BSONObj8toStringEv to _ZNK5mongo7BSONObj8toStringEb. This may cause "undefined reference" linker error in old client applications. |
message.h,
libmongoclient.so
namespace mongo
[+] MessagingPort::MessagingPort [in-charge] ( ) (1)
changed to:MessagingPort::MessagingPort [in-charge] ( int timeout )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo13MessagingPortC1Ev to _ZN5mongo13MessagingPortC1Ei. This may cause "undefined reference" linker error in old client applications. |
[+] MessagingPort::MessagingPort [not-in-charge] ( ) (1)
changed to:MessagingPort::MessagingPort [not-in-charge] ( int timeout )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo13MessagingPortC2Ev to _ZN5mongo13MessagingPortC2Ei. This may cause "undefined reference" linker error in old client applications. |
[+] MessagingPort::MessagingPort [not-in-charge] ( int sock, SockAddr& farEnd ) (1)
changed to:MessagingPort::MessagingPort [not-in-charge] ( int timeout )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo13MessagingPortC2EiRNS_8SockAddrE to _ZN5mongo13MessagingPortC2Ei. This may cause "undefined reference" linker error in old client applications. |
[+] MessagingPort::MessagingPort [in-charge] ( int sock, SockAddr& farEnd ) (1)
changed to:MessagingPort::MessagingPort [in-charge] ( int timeout )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo13MessagingPortC1EiRNS_8SockAddrE to _ZN5mongo13MessagingPortC1Ei. This may cause "undefined reference" linker error in old client applications. |
[+] MessagingPort::recv ( char* data, int max ) (1)
[ symbol: _ZN5mongo13MessagingPort4recvEPci ]
| Change | Effect |
---|
1 | Type of return value has been changed from int (4 bytes) to void. | 1) Applications will not obtain a return value and execution may change. 2) Layout of parameter's stack has been shifted by 4 bytes because the hidden first parameter (return value) has been removed. All the parameters will be incorrectly initialized by applications. |
[+] MessagingPort::send ( char const* data, int const len ) (1)
changed to:MessagingPort::send ( char const* data, int len, char const* context )
| Change | Effect |
---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo13MessagingPort4sendEPKci to _ZN5mongo13MessagingPort4sendEPKciS2_. This may cause "undefined reference" linker error in old client applications. |
to the top
Problems with Data Types, Medium Severity (6)
message.h
namespace mongo
[+] class Listener (1)
| Change |
Effect |
1 | The layout of v-table has been changed for unknown reason. | Call of any method in this class may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 5 entries | Virtual Table (New) - 6 entries |
---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~Listener | ~Listener |
12 | ~Listener | ~Listener |
16 | __cxa_pure_virtual | Listener::accepted |
20 | | Listener::accepted |
[+] affected symbols (2)
Listener::init ( )This method is from 'Listener' class.
Listener::listen ( )This method is from 'Listener' class.
[+] class Message (1)
| Change |
Effect |
1 | Size of field from has been changed from 20 bytes to 132 bytes. | 1) Size of the inclusive type has changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
[+] affected symbols (14)
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )2nd parameter 'response' (reference) has base type 'Message'.
DBClientConnection::say ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientConnection::sayPiggyBack ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )2nd parameter 'response' (reference) has base type 'Message'.
DBClientPaired::say ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientPaired::sayPiggyBack ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
LastErrorHolder::startRequest ( Message& m )1st parameter 'm' (reference) has base type 'Message'.
LastErrorHolder::startRequest ( Message& m, LastError* connectionOwned )1st parameter 'm' (reference) has base type 'Message'.
MessagingPort::call ( Message& toSend, Message& response )2nd parameter 'response' (reference) has base type 'Message'.
MessagingPort::piggyBack ( Message& toSend, int responseTo )1st parameter 'toSend' (reference) has base type 'Message'.
MessagingPort::recv ( Message& m )1st parameter 'm' (reference) has base type 'Message'.
MessagingPort::reply ( Message& received, Message& response )2nd parameter 'response' (reference) has base type 'Message'.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )2nd parameter 'response' (reference) has base type 'Message'.
MessagingPort::say ( Message& toSend, int responseTo )1st parameter 'toSend' (reference) has base type 'Message'.
[+] class MessagingPort (1)
| Change |
Effect |
1 | Size of field farEnd has been changed from 20 bytes to 132 bytes. | 1) Size of the inclusive type has changed. 2) Previous accesses of applications and library functions to this field may be broken. |
[+] affected symbols (11)
MessagingPort::call ( Message& toSend, Message& response )This method is from 'MessagingPort' class.
MessagingPort::connect ( SockAddr& farEnd )This method is from 'MessagingPort' class.
MessagingPort::piggyBack ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::recv ( char* data, int max )This method is from 'MessagingPort' class.
MessagingPort::recv ( Message& m )This method is from 'MessagingPort' class.
MessagingPort::remotePort ( )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )This method is from 'MessagingPort' class.
MessagingPort::say ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::shutdown ( )This method is from 'MessagingPort' class.
MessagingPort::~MessagingPort [in-charge] ( )This method is from 'MessagingPort' class.
sock.h
namespace mongo
[+] class SockAddr (3)
| Change |
Effect |
1 | Type of field sa has been changed from sockaddr_in (16 bytes) to sockaddr_storage (128 bytes). | 1) Size of the inclusive type has changed. 2) Previous accesses of applications and library functions to this field and fields at higher positions of the structure definition may be broken. |
2 | The relative position of field addressSize has been changed from 1 to 0. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed. |
3 | The relative position of field sa has been changed from 0 to 1. | 1) Applications will access incorrect memory when attempting to access this field. 2) Size of the inclusive type has been changed. |
[+] affected symbols (19)
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
DBClientConnection::say ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientConnection::sayPiggyBack ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
DBClientPaired::say ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
DBClientPaired::sayPiggyBack ( Message& toSend )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
LastErrorHolder::startRequest ( Message& m )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
LastErrorHolder::startRequest ( Message& m, LastError* connectionOwned )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
MessagingPort::call ( Message& toSend, Message& response )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
MessagingPort::connect ( SockAddr& farEnd )1st parameter 'farEnd' (reference) has base type 'SockAddr'.
MessagingPort::piggyBack ( Message& toSend, int responseTo )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
MessagingPort::recv ( char* data, int max )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::recv ( Message& m )Field 'm−>from' in 1st parameter 'm' (reference) has type 'SockAddr'.
MessagingPort::remotePort ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::reply ( Message& received, Message& response )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )Field 'response−>from' in 2nd parameter 'response' (reference) has type 'SockAddr'.
MessagingPort::say ( Message& toSend, int responseTo )Field 'toSend−>from' in 1st parameter 'toSend' (reference) has type 'SockAddr'.
MessagingPort::shutdown ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
MessagingPort::~MessagingPort [in-charge] ( )Field 'this−>farEnd' in the object of this method has type 'SockAddr'.
to the top
Problems with Data Types, Low Severity (8)
concurrency.h
namespace mongo
[+] class MongoMutex (2)
| Change |
Effect |
1 | Size of this type has been changed from 228 bytes to 84 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
2 | Type of field _m has been changed from boost::shared_mutex (176 bytes) to RWLock (32 bytes). | Size of the inclusive type has changed. |
[+] affected symbols (1)
dbMutex [data]Return value (reference) has base type 'MongoMutex'.
dbclient.h
namespace mongo
[+] class DBClientConnection (1)
| Change |
Effect |
1 | Field _timeout has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (12)
DBClientConnection::auth ( std::string const& dbname, std::string const& username, std::string const& pwd, std::string& errmsg, bool digestPassword )This method is from 'DBClientConnection' class.
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )This method is from 'DBClientConnection' class.
DBClientConnection::checkResponse ( char const* data, int nReturned )This method is from 'DBClientConnection' class.
DBClientConnection::connect ( std::string const& serverHostname, std::string& errmsg )This method is from 'DBClientConnection' class.
DBClientConnection::getServerAddress ( ) constThis method is from 'DBClientConnection' class.
DBClientConnection::isFailed ( ) constThis method is from 'DBClientConnection' class.
DBClientConnection::query ( std::string const& ns, Query&restrict query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )This method is from 'DBClientConnection' class.
DBClientConnection::say ( Message& toSend )This method is from 'DBClientConnection' class.
DBClientConnection::sayPiggyBack ( Message& toSend )This method is from 'DBClientConnection' class.
DBClientConnection::toString ( )This method is from 'DBClientConnection' class.
DBClientConnection::~DBClientConnection [in-charge] ( )This method is from 'DBClientConnection' class.
DBClientPaired::slaveConn ( )Return value (reference) has base type 'DBClientConnection'.
[+] class DBClientPaired (2)
| Change |
Effect |
1 | Size of field left has been changed from 80 bytes to 84 bytes. | Size of the inclusive type has changed. |
2 | Size of field right has been changed from 80 bytes to 84 bytes. | Size of the inclusive type has changed. |
[+] affected symbols (19)
DBClientPaired::auth ( std::string const& dbname, std::string const& username, std::string const& pwd, std::string& errmsg )This method is from 'DBClientPaired' class.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )This method is from 'DBClientPaired' class.
DBClientPaired::checkResponse ( char const* data, int nReturned )This method is from 'DBClientPaired' class.
DBClientPaired::connect ( std::string hostpairstring )This method is from 'DBClientPaired' class.
DBClientPaired::connect ( std::string const& serverHostname1, std::string const& serverHostname2 )This method is from 'DBClientPaired' class.
DBClientPaired::DBClientPaired [in-charge] ( )This constructor is from 'DBClientPaired' class.
DBClientPaired::findOne ( std::string const& ns, Query query, BSONObj const* fieldsToReturn, int queryOptions )This method is from 'DBClientPaired' class.
DBClientPaired::getServerAddress ( ) constThis method is from 'DBClientPaired' class.
DBClientPaired::insert ( std::string const& ns, BSONObj&restrict obj )This method is from 'DBClientPaired' class.
DBClientPaired::insert ( std::string const& ns, std::vector<BSONObj>const& v )This method is from 'DBClientPaired' class.
DBClientPaired::isFailed ( ) constThis method is from 'DBClientPaired' class.
DBClientPaired::query ( std::string const& ns, Query query, int nToReturn, int nToSkip, BSONObj const* fieldsToReturn, int queryOptions, int batchSize )This method is from 'DBClientPaired' class.
DBClientPaired::remove ( std::string const& ns, Query&restrict obj, bool justOne )This method is from 'DBClientPaired' class.
DBClientPaired::say ( Message& toSend )This method is from 'DBClientPaired' class.
DBClientPaired::sayPiggyBack ( Message& toSend )This method is from 'DBClientPaired' class.
DBClientPaired::slaveConn ( )This method is from 'DBClientPaired' class.
DBClientPaired::toString ( )This method is from 'DBClientPaired' class.
DBClientPaired::update ( std::string const& ns, Query&restrict query, BSONObj&restrict obj, bool upsert, bool multi )This method is from 'DBClientPaired' class.
DBClientPaired::~DBClientPaired [in-charge] ( )This method is from 'DBClientPaired' class.
message.h
namespace mongo
[+] class Message (1)
| Change |
Effect |
1 | Size of this type has been changed from 28 bytes to 140 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |
[+] affected symbols (14)
DBClientConnection::call ( Message& toSend, Message& response, bool assertOk )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientConnection::say ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientConnection::sayPiggyBack ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientPaired::call ( Message& toSend, Message& response, bool assertOk )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientPaired::say ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
DBClientPaired::sayPiggyBack ( Message& toSend )1st parameter 'toSend' (reference) has base type 'Message'.
LastErrorHolder::startRequest ( Message& m )1st parameter 'm' (reference) has base type 'Message'.
LastErrorHolder::startRequest ( Message& m, LastError* connectionOwned )1st parameter 'm' (reference) has base type 'Message'.
MessagingPort::call ( Message& toSend, Message& response )1st parameter 'toSend' (reference) has base type 'Message'.
MessagingPort::piggyBack ( Message& toSend, int responseTo )1st parameter 'toSend' (reference) has base type 'Message'.
MessagingPort::recv ( Message& m )1st parameter 'm' (reference) has base type 'Message'.
MessagingPort::reply ( Message& received, Message& response )1st parameter 'received' (reference) has base type 'Message'.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )1st parameter 'received' (reference) has base type 'Message'.
MessagingPort::say ( Message& toSend, int responseTo )1st parameter 'toSend' (reference) has base type 'Message'.
[+] class MessagingPort (1)
| Change |
Effect |
1 | Field _timeout has been added to this type. | Size of the inclusive type has been changed. NOTE: this field should be accessed only from the new library functions, otherwise it may result in crash or incorrect behavior of applications. |
[+] affected symbols (11)
MessagingPort::call ( Message& toSend, Message& response )This method is from 'MessagingPort' class.
MessagingPort::connect ( SockAddr& farEnd )This method is from 'MessagingPort' class.
MessagingPort::piggyBack ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::recv ( char* data, int max )This method is from 'MessagingPort' class.
MessagingPort::recv ( Message& m )This method is from 'MessagingPort' class.
MessagingPort::remotePort ( )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response )This method is from 'MessagingPort' class.
MessagingPort::reply ( Message& received, Message& response, MSGID responseTo )This method is from 'MessagingPort' class.
MessagingPort::say ( Message& toSend, int responseTo )This method is from 'MessagingPort' class.
MessagingPort::shutdown ( )This method is from 'MessagingPort' class.
MessagingPort::~MessagingPort [in-charge] ( )This method is from 'MessagingPort' class.
sock.h
namespace mongo
[+] class ListeningSockets (1)
| Change |
Effect |
1 | Size of field _mutex has been changed from 24 bytes to 4 bytes. | Size of the inclusive type has changed. |
[+] affected symbols (1)
ListeningSockets::get ( ) [static]Return value (pointer) has base type 'ListeningSockets'.
to the top
Problems with Symbols, Low Severity (1)
message.h,
libmongoclient.so
namespace mongo
[+] MessagingPort::recv ( char* data, int max ) (1)
changed to:MessagingPort::recv ( char* data, int len )
| Change | Effect |
---|
1 | 2nd parameter max has been renamed to len. | Renaming of a parameter may indicate a change in its semantic meaning. |
to the top
Header Files (1)
dbclient.h
to the top
Shared Libraries (1)
libmongoclient.so
to the top