Library Name | mongoDB |
---|---|
Version #1 | 1.5.3 |
Version #2 | 1.5.4 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Total Header Files | 1 |
---|---|
Total Shared Libraries | 1 |
Total Symbols / Types | 391 / 310 |
Verdict | Incompatible (20.72%) |
Severity | Count | |
---|---|---|
Added Symbols | - | 10 |
Removed Symbols | High | 2 |
Problems with Data Types | High | 13 |
Medium | 9 | |
Low | 3 | |
Problems with Symbols | High | 2 |
Medium | 0 | |
Low | 0 | |
Problems with Constants | Low | 1 |
Other Changes | - | 0 |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 4 bytes to 12 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. |
2 | Size of v-table in this class has been changed from 28 bytes to 32 bytes. | The layout of v-tables in its subclasses has been changed. Call of any virtual method in subclasses may result in crash or incorrect behavior of applications. |
3 | Virtual method DBException::appendPrefix ( std::stringstream& ss ) const has been added to this class. | The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
4 | The relative position of virtual method DBException::toString ( ) const has been changed from 3 to 4. | The layout of v-table has been changed. Call of this virtual method may result in crash or incorrect behavior of applications. |
Offset | Virtual Table (Old) - 7 entries | Virtual Table (New) - 8 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~DBException | ~DBException |
12 | ~DBException | ~DBException |
16 | __cxa_pure_virtual | DBException::what |
20 | DBException::toString | DBException::getCode |
24 | __cxa_pure_virtual | DBException::appendPrefix |
28 | DBException::toString |
Change | Effect | |
---|---|---|
1 | Virtual method DBClientConnection::checkResponse ( char const* data, int nReturned ) has been removed from this class. | The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
Offset | Virtual Table (Old) - 42 entries | Virtual Table (New) - 43 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientConnection::query | DBClientConnection::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientBase::insert | DBClientBase::insert |
20 | DBClientBase::insert | DBClientBase::insert |
24 | DBClientBase::remove | DBClientBase::remove |
28 | DBClientBase::update | DBClientBase::update |
32 | ~DBClientConnection | ~DBClientConnection |
36 | ~DBClientConnection | ~DBClientConnection |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientConnection::auth | DBClientConnection::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::dropCollection | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::ensureIndex | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::getIndexes | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::reIndex | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::dropDatabase | DBClientWithCommands::reIndex |
92 | DBClientConnection::toString | DBClientWithCommands::dropDatabase |
96 | DBClientConnection::getServerAddress | DBClientConnection::toString |
100 | DBClientConnection::isFailed | DBClientConnection::getServerAddress |
104 | DBClientConnection::killCursor | DBClientConnection::isFailed |
108 | DBClientConnection::connect | DBClientConnection::killCursor |
112 | DBClientConnection::recv | DBClientConnection::connect |
116 | DBClientConnection::call | DBClientConnection::recv |
120 | DBClientConnection::say | DBClientConnection::call |
124 | DBClientConnection::sayPiggyBack | DBClientConnection::say |
128 | DBClientConnection::checkResponse | DBClientConnection::sayPiggyBack |
132 | (int (*)(...))-0x000000020 | DBClientConnection::checkResponse |
136 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000020 |
140 | non-virtual thunk | (int (*)(...))(& typeinfo) |
144 | non-virtual thunk | non-virtual thunk |
148 | non-virtual thunk | non-virtual thunk |
152 | non-virtual thunk | non-virtual thunk |
156 | non-virtual thunk | non-virtual thunk |
160 | DBConnector::checkResponse | non-virtual thunk |
164 | non-virtual thunk | non-virtual thunk |
168 | non-virtual thunk |
Change | Effect | |
---|---|---|
1 | Virtual method DBClientPaired::checkResponse ( char const* data, int nReturned ) has been removed from this class. | The layout of v-table has been changed. Call of this virtual method or any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
Offset | Virtual Table (Old) - 40 entries | Virtual Table (New) - 41 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientPaired::query | DBClientPaired::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientPaired::insert | DBClientPaired::insert |
20 | DBClientPaired::insert | DBClientPaired::insert |
24 | DBClientPaired::remove | DBClientPaired::remove |
28 | DBClientPaired::update | DBClientPaired::update |
32 | ~DBClientPaired | ~DBClientPaired |
36 | ~DBClientPaired | ~DBClientPaired |
40 | DBClientPaired::findOne | DBClientPaired::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientWithCommands::auth | DBClientWithCommands::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::dropCollection | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::ensureIndex | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::getIndexes | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::reIndex | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::dropDatabase | DBClientWithCommands::reIndex |
92 | DBClientPaired::toString | DBClientWithCommands::dropDatabase |
96 | DBClientPaired::getServerAddress | DBClientPaired::toString |
100 | DBClientPaired::isFailed | DBClientPaired::getServerAddress |
104 | DBClientPaired::killCursor | DBClientPaired::isFailed |
108 | DBClientPaired::call | DBClientPaired::killCursor |
112 | DBClientPaired::say | DBClientPaired::call |
116 | DBClientPaired::sayPiggyBack | DBClientPaired::say |
120 | DBClientPaired::checkResponse | DBClientPaired::sayPiggyBack |
124 | (int (*)(...))-0x000000020 | DBClientPaired::checkResponse |
128 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000020 |
132 | non-virtual thunk | (int (*)(...))(& typeinfo) |
136 | non-virtual thunk | non-virtual thunk |
140 | non-virtual thunk | non-virtual thunk |
144 | non-virtual thunk | non-virtual thunk |
148 | non-virtual thunk | non-virtual thunk |
152 | DBConnector::checkResponse | non-virtual thunk |
156 | DBConnector::recv | non-virtual thunk |
160 | DBConnector::recv |
Change | Effect | |
---|---|---|
1 | Size of v-table in this class has been changed from 96 bytes to 100 bytes. | The layout of v-tables in its subclasses has been changed. Call of any virtual method in subclasses may result in crash or incorrect behavior of applications. |
2 | Virtual method DBClientWithCommands::getLastErrorDetailed ( ) has been added to this class. | The layout of v-table has been changed. Call of any virtual method at higher position in this class or its subclasses may result in crash or incorrect behavior of applications. |
Offset | Virtual Table (Old) - 24 entries | Virtual Table (New) - 25 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | __cxa_pure_virtual | __cxa_pure_virtual |
12 | __cxa_pure_virtual | __cxa_pure_virtual |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | __cxa_pure_virtual | __cxa_pure_virtual |
32 | ~DBClientWithCommands | ~DBClientWithCommands |
36 | ~DBClientWithCommands | ~DBClientWithCommands |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientWithCommands::auth | DBClientWithCommands::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::dropCollection | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::ensureIndex | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::getIndexes | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::reIndex | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::dropDatabase | DBClientWithCommands::reIndex |
92 | __cxa_pure_virtual | DBClientWithCommands::dropDatabase |
96 | __cxa_pure_virtual |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 28 bytes to 40 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. |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 192 bytes to 196 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. |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 16 bytes to 24 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. |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 4 bytes to 12 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. |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 4 bytes to 12 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. |
Change | Effect | |
---|---|---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK5mongo7BSONObj11woSortOrderERKS0_S2_ to _ZNK5mongo7BSONObj11woSortOrderERKS0_S2_b. This may cause "undefined reference" linker error in old client applications. |
Change | Effect | |
---|---|---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo11DBConnector13checkResponseERKSsi to _ZN5mongo11DBConnector13checkResponseEPKci. This may cause "undefined reference" linker error in old client applications. |
Change | Effect | |
---|---|---|
1 | Field code has been removed from this type. | Applications will access incorrect memory when attempting to access this field. |
2 | Field msg has been removed from this type. | Applications will access incorrect memory when attempting to access this field. |
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. |
Offset | Virtual Table (Old) - 9 entries | Virtual Table (New) - 10 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~MsgAssertionException | ~MsgAssertionException |
12 | ~MsgAssertionException | ~MsgAssertionException |
16 | AssertionException::what | DBException::what |
20 | MsgAssertionException::toString | DBException::getCode |
24 | AssertionException::getCode | MsgAssertionException::appendPrefix |
28 | MsgAssertionException::severe | DBException::toString |
32 | AssertionException::isUserAssertion | MsgAssertionException::severe |
36 | AssertionException::isUserAssertion |
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. |
Offset | Virtual Table (Old) - 9 entries | Virtual Table (New) - 10 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~UserException | ~UserException |
12 | ~UserException | ~UserException |
16 | AssertionException::what | DBException::what |
20 | UserException::toString | DBException::getCode |
24 | AssertionException::getCode | UserException::appendPrefix |
28 | UserException::severe | DBException::toString |
32 | UserException::isUserAssertion | UserException::severe |
36 | UserException::isUserAssertion |
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. |
Offset | Virtual Table (Old) - 36 entries | Virtual Table (New) - 37 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientBase::query | DBClientBase::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientBase::insert | DBClientBase::insert |
20 | DBClientBase::insert | DBClientBase::insert |
24 | DBClientBase::remove | DBClientBase::remove |
28 | DBClientBase::update | DBClientBase::update |
32 | ~DBClientBase | ~DBClientBase |
36 | ~DBClientBase | ~DBClientBase |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientWithCommands::auth | DBClientWithCommands::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::dropCollection | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::ensureIndex | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::getIndexes | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::reIndex | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::dropDatabase | DBClientWithCommands::reIndex |
92 | __cxa_pure_virtual | DBClientWithCommands::dropDatabase |
96 | __cxa_pure_virtual | __cxa_pure_virtual |
100 | __cxa_pure_virtual | __cxa_pure_virtual |
104 | __cxa_pure_virtual | __cxa_pure_virtual |
108 | (int (*)(...))-0x000000020 | __cxa_pure_virtual |
112 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000020 |
116 | non-virtual thunk | (int (*)(...))(& typeinfo) |
120 | non-virtual thunk | non-virtual thunk |
124 | __cxa_pure_virtual | non-virtual thunk |
128 | __cxa_pure_virtual | __cxa_pure_virtual |
132 | __cxa_pure_virtual | __cxa_pure_virtual |
136 | DBConnector::checkResponse | __cxa_pure_virtual |
140 | DBConnector::recv | DBConnector::checkResponse |
144 | DBConnector::recv |
Change | Effect | |
---|---|---|
1 | Virtual method DBConnector::checkResponse ( char const* data, int nReturned ) has been added to this class instead of DBConnector::checkResponse ( std::string const& data, int nReturned ). | Applications will pass parameters of older replaced method to newly added virtual method. This may result in crash or incorrect behavior of applications. |
Offset | Virtual Table (Old) - 9 entries | Virtual Table (New) - 9 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~DBConnector | ~DBConnector |
12 | ~DBConnector | ~DBConnector |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | __cxa_pure_virtual | __cxa_pure_virtual |
24 | __cxa_pure_virtual | __cxa_pure_virtual |
28 | DBConnector::checkResponse | DBConnector::checkResponse |
32 | DBConnector::recv | DBConnector::recv |
Change | Effect | |
---|---|---|
1 | Field upsertedId has been added at the middle position of this structural type. | 1) Size of the inclusive type has been changed. 2) Layout of structure fields has been changed and therefore fields at higher positions of the structure definition may be incorrectly accessed by applications. |
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. |
Offset | Virtual Table (Old) - 7 entries | Virtual Table (New) - 8 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~SocketException | ~SocketException |
12 | ~SocketException | ~SocketException |
16 | SocketException::what | DBException::what |
20 | DBException::toString | DBException::getCode |
24 | SocketException::getCode | DBException::appendPrefix |
28 | DBException::toString |
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. |
Offset | Virtual Table (Old) - 7 entries | Virtual Table (New) - 8 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~ClockSkewException | ~ClockSkewException |
12 | ~ClockSkewException | ~ClockSkewException |
16 | ClockSkewException::what | DBException::what |
20 | DBException::toString | DBException::getCode |
24 | ClockSkewException::getCode | DBException::appendPrefix |
28 | DBException::toString |
Change | Effect | |
---|---|---|
1 | Field _ei 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. |
Change | Effect | |
---|---|---|
1 | Field logLevel 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. |
Change | Effect | |
---|---|---|
1 | Field _elapsedTime 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. |
Change | Effect | |
---|---|---|
1 | The value of constant MONGO_DEV has been changed from if( 0 ) to if( DEBUG_BUILD ). | Applications will pass an old value of this constant as the parameter to the new-version library functions, that expect a new one. This may result in crash of incorrect behavior of applications. |