Library Name | mongoDB |
---|---|
Version #1 | 1.2.5 |
Version #2 | 1.3.0 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Total Header Files | 1 |
---|---|
Total Shared Libraries | 1 |
Total Symbols / Types | 336 / 236 |
Verdict | Incompatible (23.51%) |
Severity | Count | |
---|---|---|
Added Symbols | - | 6 |
Removed Symbols | High | 5 |
Problems with Data Types | High | 11 |
Medium | 8 | |
Low | 1 | |
Problems with Symbols | High | 3 |
Medium | 0 | |
Low | 0 | |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 8 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 v-table in this class has been changed from 24 bytes to 28 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 DBException::getCode ( ) 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) - 6 entries | Virtual Table (New) - 7 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~DBException | ~DBException |
12 | ~DBException | ~DBException |
16 | __cxa_pure_virtual | __cxa_pure_virtual |
20 | DBException::toString | DBException::toString |
24 | __cxa_pure_virtual |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 8 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 8 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 | The relative position of pure virtual method DBClientInterface::insert ( std::string const& ns, BSONObj obj ) has been changed from 3 to 2. | The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
2 | The relative position of pure virtual method DBClientInterface::insert ( std::string const& ns, std::vector<BSONObj>const& v ) has been changed from 4 to 3. | The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
3 | The relative position of pure virtual method DBClientInterface::remove ( std::string const& ns, Query query, bool justOne ) has been changed from 5 to 4. | The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
4 | The relative position of pure virtual method DBClientInterface::update ( std::string const& ns, Query query, BSONObj obj, bool upsert, bool multi ) has been changed from 6 to 5. | The layout of v-table has been changed. Call of this pure virtual method implementation may result in crash or incorrect behavior of applications. |
5 | The relative position of virtual method DBClientInterface::~DBClientInterface [in-charge] ( ) has been changed from 8 to 7. | 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) - 11 entries | Virtual Table (New) - 11 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 | __cxa_pure_virtual | ~DBClientInterface |
36 | ~DBClientInterface | ~DBClientInterface |
40 | ~DBClientInterface | DBClientInterface::findOne |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 20 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 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZN5mongo11msgassertedEPKc to _ZN5mongo11msgassertedEiPKc. 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 _ZN5mongo9uassertedEPKc to _ZN5mongo9uassertedEiPKc. 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 _ZNK5mongo7BSONObj19extractFieldsDottedES0_RNS_14BSONObjBuilderERPKc to _ZNK5mongo7BSONObj19extractFieldsDottedES0_. This may cause "undefined reference" linker error in old client applications. |
Change | Effect | |
---|---|---|
1 | Field code 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) - 8 entries | Virtual Table (New) - 9 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~MsgAssertionException | ~MsgAssertionException |
12 | ~MsgAssertionException | ~MsgAssertionException |
16 | AssertionException::what | AssertionException::what |
20 | MsgAssertionException::toString | MsgAssertionException::toString |
24 | MsgAssertionException::severe | AssertionException::getCode |
28 | AssertionException::isUserAssertion | MsgAssertionException::severe |
32 | 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) - 8 entries | Virtual Table (New) - 9 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | ~UserException | ~UserException |
12 | ~UserException | ~UserException |
16 | AssertionException::what | AssertionException::what |
20 | UserException::toString | UserException::toString |
24 | UserException::severe | AssertionException::getCode |
28 | UserException::isUserAssertion | UserException::severe |
32 | 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) - 33 entries | Virtual Table (New) - 33 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientBase::query | DBClientBase::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientBase::findOne | DBClientBase::insert |
20 | DBClientBase::insert | DBClientBase::insert |
24 | DBClientBase::insert | DBClientBase::remove |
28 | DBClientBase::remove | DBClientBase::update |
32 | DBClientBase::update | ~DBClientBase |
36 | ~DBClientBase | ~DBClientBase |
40 | ~DBClientBase | DBClientInterface::findOne |
44 | DBClientWithCommands::auth | DBClientWithCommands::auth |
48 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
52 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
56 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
60 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
64 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
68 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
76 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
80 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
84 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
88 | __cxa_pure_virtual | __cxa_pure_virtual |
92 | __cxa_pure_virtual | __cxa_pure_virtual |
96 | __cxa_pure_virtual | __cxa_pure_virtual |
100 | (int (*)(...))-0x00000001c | (int (*)(...))-0x00000001c |
104 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
108 | non-virtual thunk | non-virtual thunk |
112 | non-virtual thunk | non-virtual thunk |
116 | __cxa_pure_virtual | __cxa_pure_virtual |
120 | __cxa_pure_virtual | __cxa_pure_virtual |
124 | __cxa_pure_virtual | __cxa_pure_virtual |
128 | DBConnector::checkResponse | DBConnector::checkResponse |
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) - 38 entries | Virtual Table (New) - 38 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientConnection::query | DBClientConnection::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientBase::findOne | DBClientBase::insert |
20 | DBClientBase::insert | DBClientBase::insert |
24 | DBClientBase::insert | DBClientBase::remove |
28 | DBClientBase::remove | DBClientBase::update |
32 | DBClientBase::update | ~DBClientConnection |
36 | ~DBClientConnection | ~DBClientConnection |
40 | ~DBClientConnection | DBClientInterface::findOne |
44 | DBClientConnection::auth | DBClientConnection::auth |
48 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
52 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
56 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
60 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
64 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
68 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
76 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
80 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
84 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
88 | DBClientConnection::toString | DBClientConnection::toString |
92 | DBClientConnection::getServerAddress | DBClientConnection::getServerAddress |
96 | DBClientConnection::isFailed | DBClientConnection::isFailed |
100 | DBClientConnection::connect | DBClientConnection::connect |
104 | DBClientConnection::call | DBClientConnection::call |
108 | DBClientConnection::say | DBClientConnection::say |
112 | DBClientConnection::sayPiggyBack | DBClientConnection::sayPiggyBack |
116 | DBClientConnection::checkResponse | DBClientConnection::checkResponse |
120 | (int (*)(...))-0x00000001c | (int (*)(...))-0x00000001c |
124 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
128 | non-virtual thunk | non-virtual thunk |
132 | non-virtual thunk | non-virtual thunk |
136 | non-virtual thunk | non-virtual thunk |
140 | non-virtual thunk | non-virtual thunk |
144 | non-virtual thunk | non-virtual thunk |
148 | DBConnector::checkResponse | DBConnector::checkResponse |
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) - 37 entries | Virtual Table (New) - 37 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | DBClientPaired::query | DBClientPaired::query |
12 | DBClientBase::getMore | DBClientBase::getMore |
16 | DBClientPaired::findOne | DBClientPaired::insert |
20 | DBClientPaired::insert | DBClientPaired::insert |
24 | DBClientPaired::insert | DBClientPaired::remove |
28 | DBClientPaired::remove | DBClientPaired::update |
32 | DBClientPaired::update | ~DBClientPaired |
36 | ~DBClientPaired | ~DBClientPaired |
40 | ~DBClientPaired | DBClientPaired::findOne |
44 | DBClientWithCommands::auth | DBClientWithCommands::auth |
48 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
52 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
56 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
60 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
64 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
68 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
76 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
80 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
84 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
88 | DBClientPaired::toString | DBClientPaired::toString |
92 | DBClientPaired::getServerAddress | DBClientPaired::getServerAddress |
96 | DBClientPaired::isFailed | DBClientPaired::isFailed |
100 | DBClientPaired::call | DBClientPaired::call |
104 | DBClientPaired::say | DBClientPaired::say |
108 | DBClientPaired::sayPiggyBack | DBClientPaired::sayPiggyBack |
112 | DBClientPaired::checkResponse | DBClientPaired::checkResponse |
116 | (int (*)(...))-0x00000001c | (int (*)(...))-0x00000001c |
120 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
124 | non-virtual thunk | non-virtual thunk |
128 | non-virtual thunk | non-virtual thunk |
132 | non-virtual thunk | non-virtual thunk |
136 | non-virtual thunk | non-virtual thunk |
140 | non-virtual thunk | non-virtual thunk |
144 | DBConnector::checkResponse | DBConnector::checkResponse |
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) - 23 entries | Virtual Table (New) - 23 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 | __cxa_pure_virtual | ~DBClientWithCommands |
36 | ~DBClientWithCommands | ~DBClientWithCommands |
40 | ~DBClientWithCommands | DBClientInterface::findOne |
44 | DBClientWithCommands::auth | DBClientWithCommands::auth |
48 | DBClientWithCommands::isMaster | DBClientWithCommands::isMaster |
52 | DBClientWithCommands::dropCollection | DBClientWithCommands::dropCollection |
56 | DBClientWithCommands::ensureIndex | DBClientWithCommands::ensureIndex |
60 | DBClientWithCommands::resetIndexCache | DBClientWithCommands::resetIndexCache |
64 | DBClientWithCommands::getIndexes | DBClientWithCommands::getIndexes |
68 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
72 | DBClientWithCommands::dropIndex | DBClientWithCommands::dropIndex |
76 | DBClientWithCommands::dropIndexes | DBClientWithCommands::dropIndexes |
80 | DBClientWithCommands::reIndex | DBClientWithCommands::reIndex |
84 | DBClientWithCommands::dropDatabase | DBClientWithCommands::dropDatabase |
88 | __cxa_pure_virtual | __cxa_pure_virtual |
Change | Effect | |
---|---|---|
1 | Field code 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 member EXIT_CLOCK_SKEW has been removed. | This may result in crash or incorrect behavior of applications because the library may not handle removed member anymore. |