Library Name | mongoDB |
---|---|
Version #1 | 1.6.0 |
Version #2 | 1.6.1 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Total Header Files | 1 |
---|---|
Total Shared Libraries | 2 |
Total Symbols / Types | 444 / 348 |
Verdict | Incompatible (9.46%) |
Severity | Count | |
---|---|---|
Added Symbols | - | 1 |
Removed Symbols | High | 0 |
Problems with Data Types | High | 4 |
Medium | 1 | |
Low | 0 | |
Problems with Symbols | High | 0 |
Medium | 0 | |
Low | 1 | |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Change | Effect | |
---|---|---|
1 | Pure virtual method DBClientBase::isMember ( DBConnector const* conn ) const has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) 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. |
2 | Virtual method DBClientBase::getServerAddress ( ) const 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 | 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::getLastErrorDetailed | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
92 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
96 | __cxa_pure_virtual | __cxa_pure_virtual |
100 | __cxa_pure_virtual | __cxa_pure_virtual |
104 | __cxa_pure_virtual | __cxa_pure_virtual |
108 | __cxa_pure_virtual | __cxa_pure_virtual |
112 | __cxa_pure_virtual | __cxa_pure_virtual |
116 | __cxa_pure_virtual | __cxa_pure_virtual |
120 | __cxa_pure_virtual | __cxa_pure_virtual |
124 | (int (*)(...))-0x000000028 | (int (*)(...))-0x000000028 |
128 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
132 | non-virtual thunk | non-virtual thunk |
136 | non-virtual thunk | non-virtual thunk |
140 | __cxa_pure_virtual | __cxa_pure_virtual |
144 | __cxa_pure_virtual | __cxa_pure_virtual |
148 | __cxa_pure_virtual | __cxa_pure_virtual |
152 | DBConnector::checkResponse | DBConnector::checkResponse |
156 | DBConnector::recv | DBConnector::recv |
160 | __cxa_pure_virtual |
Change | Effect | |
---|---|---|
1 | Size of v-table in this class has been changed from 36 bytes to 40 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 | Pure virtual method DBConnector::getServerAddress ( ) const has been added to this class. | 1) Applications will not provide the implementation for this pure virtual method and therefore cause a crash in the library trying to call this method. 2) 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) - 9 entries | Virtual Table (New) - 10 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 |
36 | __cxa_pure_virtual |
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) - 43 entries | Virtual Table (New) - 45 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientReplicaSet::query | DBClientReplicaSet::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientReplicaSet::insert | DBClientReplicaSet::insert |
20 | DBClientReplicaSet::insert | DBClientReplicaSet::insert |
24 | DBClientReplicaSet::remove | DBClientReplicaSet::remove |
28 | DBClientReplicaSet::update | DBClientReplicaSet::update |
32 | ~DBClientReplicaSet | ~DBClientReplicaSet |
36 | ~DBClientReplicaSet | ~DBClientReplicaSet |
40 | DBClientReplicaSet::findOne | DBClientReplicaSet::findOne |
44 | DBClientWithCommands::runCommand | DBClientWithCommands::runCommand |
48 | DBClientReplicaSet::auth | DBClientReplicaSet::auth |
52 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
56 | DBClientWithCommands::getLastErrorDetailed | DBClientWithCommands::getLastErrorDetailed |
60 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
64 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
68 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
72 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
76 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
80 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
84 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
88 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
92 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
96 | DBClientReplicaSet::toString | DBClientReplicaSet::toString |
100 | DBClientReplicaSet::getServerAddress | DBClientReplicaSet::isFailed |
104 | DBClientReplicaSet::isFailed | DBClientReplicaSet::killCursor |
108 | DBClientReplicaSet::killCursor | DBClientReplicaSet::callRead |
112 | DBClientReplicaSet::callRead | DBClientReplicaSet::say |
116 | DBClientReplicaSet::say | DBClientReplicaSet::type |
120 | DBClientReplicaSet::type | DBClientReplicaSet::isMember |
124 | DBClientReplicaSet::call | DBClientReplicaSet::getServerAddress |
128 | DBClientReplicaSet::sayPiggyBack | DBClientReplicaSet::call |
132 | DBClientReplicaSet::checkResponse | DBClientReplicaSet::checkResponse |
136 | (int (*)(...))-0x000000028 | DBClientReplicaSet::sayPiggyBack |
140 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000028 |
144 | non-virtual thunk | (int (*)(...))(& typeinfo) |
148 | non-virtual thunk | non-virtual thunk |
152 | non-virtual thunk | non-virtual thunk |
156 | non-virtual thunk | non-virtual thunk |
160 | non-virtual thunk | non-virtual thunk |
164 | non-virtual thunk | non-virtual thunk |
168 | DBConnector::recv | non-virtual thunk |
172 | DBConnector::recv | |
176 | non-virtual thunk |
Change | Effect | |
---|---|---|
1 | The default argument 0 of 1st parameter prefix has been removed. | Applications will pass an old default argument (that is not default any more) that may not be properly handled anymore. This may result in crash or incorrect behavior of applications. |