Library Name | mongoDB |
---|---|
Version #1 | 1.5.5 |
Version #2 | 1.5.6 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Total Header Files | 1 |
---|---|
Total Shared Libraries | 1 |
Total Symbols / Types | 431 / 331 |
Verdict | Incompatible (18.33%) |
Severity | Count | |
---|---|---|
Added Symbols | - | 7 |
Removed Symbols | High | 6 |
Problems with Data Types | High | 5 |
Medium | 4 | |
Low | 2 | |
Problems with Symbols | High | 6 |
Medium | 1 | |
Low | 0 | |
Problems with Constants | Low | 0 |
Other Changes | - | 0 |
Change | Effect | |
---|---|---|
1 | Size of v-table in this class has been changed from 148 bytes to 156 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 DBClientBase::callRead ( Message& toSend, Message& response ) 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. |
3 | Pure virtual method DBClientBase::say ( Message& toSend ) 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) - 37 entries | Virtual Table (New) - 39 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 | (int (*)(...))-0x000000028 | __cxa_pure_virtual |
116 | (int (*)(...))(& typeinfo) | __cxa_pure_virtual |
120 | non-virtual thunk | (int (*)(...))-0x000000028 |
124 | non-virtual thunk | (int (*)(...))(& typeinfo) |
128 | __cxa_pure_virtual | non-virtual thunk |
132 | __cxa_pure_virtual | non-virtual thunk |
136 | __cxa_pure_virtual | __cxa_pure_virtual |
140 | DBConnector::checkResponse | __cxa_pure_virtual |
144 | DBConnector::recv | __cxa_pure_virtual |
148 | DBConnector::checkResponse | |
152 | DBConnector::recv |
Change | Effect | |
---|---|---|
1 | Size of this class has been changed from 40 bytes to 52 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 | Virtual method Nullstream::operator<< ( std::string const& p1 ) 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) - 23 entries | Virtual Table (New) - 24 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | Nullstream::operator<< | Nullstream::operator<< |
12 | ~Nullstream | ~Nullstream |
16 | ~Nullstream | ~Nullstream |
20 | Nullstream::operator<< | Nullstream::operator<< |
24 | Nullstream::operator<< | Nullstream::operator<< |
28 | Nullstream::operator<< | Nullstream::operator<< |
32 | Nullstream::operator<< | Nullstream::operator<< |
36 | Nullstream::operator<< | Nullstream::operator<< |
40 | Nullstream::operator<< | Nullstream::operator<< |
44 | Nullstream::operator<< | Nullstream::operator<< |
48 | Nullstream::operator<< | Nullstream::operator<< |
52 | Nullstream::operator<< | Nullstream::operator<< |
56 | Nullstream::operator<< | Nullstream::operator<< |
60 | Nullstream::operator<< | Nullstream::operator<< |
64 | Nullstream::operator<< | Nullstream::operator<< |
68 | Nullstream::operator<< | Nullstream::operator<< |
72 | Nullstream::operator<< | Nullstream::operator<< |
76 | Nullstream::operator<< | Nullstream::operator<< |
80 | Nullstream::operator<< | Nullstream::operator<< |
84 | Nullstream::operator<< | Nullstream::operator<< |
88 | Nullstream::flush | Nullstream::operator<< |
92 | Nullstream::flush |
Change | Effect | |
---|---|---|
1 | Parameters list has been changed. | The name of the appropriate symbol for this function on binary level has been changed from _ZNK5mongo7BSONObj15getFieldsDottedEPKcRSt3setINS_11BSONElementENS_26BSONElementCmpWithoutFieldESaIS4_EE to _ZNK5mongo7BSONObj15getFieldsDottedERKNS_10StringDataERSt3setINS_11BSONElementENS_26BSONElementCmpWithoutFieldESaIS5_EE. 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 _ZN5mongo14BSONObjBuilder14appendAsNumberERKSsS2_ to _ZN5mongo14BSONObjBuilder14appendAsNumberERKNS_10StringDataERKSs. 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 _ZN5mongo14BSONObjBuilder16appendMaxForTypeERKSsi to _ZN5mongo14BSONObjBuilder16appendMaxForTypeERKNS_10StringDataEi. 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 _ZN5mongo14BSONObjBuilder16appendMinForTypeERKSsi to _ZN5mongo14BSONObjBuilder16appendMinForTypeERKNS_10StringDataEi. 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 _ZN5mongo17DBClientInterface7findOneERKSsNS_5QueryEPKNS_7BSONObjEi to _ZN5mongo17DBClientInterface7findOneERKSsRKNS_5QueryEPKNS_7BSONObjEi. 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 _ZN5mongo14DBClientPaired7findOneERKSsNS_5QueryEPKNS_7BSONObjEi to _ZN5mongo14DBClientPaired7findOneERKSsRKNS_5QueryEPKNS_7BSONObjEi. This may cause "undefined reference" linker error in old client applications. |
Change | Effect | |
---|---|---|
1 | Virtual method DBClientInterface::findOne ( std::string const& ns, Query const& query, BSONObj const* fieldsToReturn, int queryOptions ) has been added to this class instead of DBClientInterface::findOne ( std::string const& ns, Query query, BSONObj const* fieldsToReturn, int queryOptions ). | 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) - 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 | ~DBClientInterface | ~DBClientInterface |
36 | ~DBClientInterface | ~DBClientInterface |
40 | DBClientInterface::findOne | DBClientInterface::findOne |
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) - 41 entries | Virtual Table (New) - 42 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::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 | DBClientPaired::toString | DBClientPaired::toString |
100 | DBClientPaired::getServerAddress | DBClientPaired::getServerAddress |
104 | DBClientPaired::isFailed | DBClientPaired::isFailed |
108 | DBClientPaired::killCursor | DBClientPaired::killCursor |
112 | DBClientPaired::call | DBClientPaired::callRead |
116 | DBClientPaired::say | DBClientPaired::say |
120 | DBClientPaired::sayPiggyBack | DBClientPaired::call |
124 | DBClientPaired::checkResponse | DBClientPaired::sayPiggyBack |
128 | (int (*)(...))-0x000000028 | DBClientPaired::checkResponse |
132 | (int (*)(...))(& typeinfo) | (int (*)(...))-0x000000028 |
136 | non-virtual thunk | (int (*)(...))(& typeinfo) |
140 | non-virtual thunk | non-virtual thunk |
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::recv | non-virtual thunk |
164 | DBConnector::recv |
Change | Effect | |
---|---|---|
1 | Field writebackId 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) - 23 entries | Virtual Table (New) - 24 entries |
---|---|---|
0 | (int (*)(...))0 | (int (*)(...))0 |
4 | (int (*)(...))(& typeinfo) | (int (*)(...))(& typeinfo) |
8 | Logstream::operator<< | Logstream::operator<< |
12 | ~Logstream | ~Logstream |
16 | ~Logstream | ~Logstream |
20 | Logstream::operator<< | Logstream::operator<< |
24 | Logstream::operator<< | Logstream::operator<< |
28 | Logstream::operator<< | Logstream::operator<< |
32 | Logstream::operator<< | Logstream::operator<< |
36 | Logstream::operator<< | Logstream::operator<< |
40 | Logstream::operator<< | Logstream::operator<< |
44 | Logstream::operator<< | Logstream::operator<< |
48 | Logstream::operator<< | Logstream::operator<< |
52 | Logstream::operator<< | Logstream::operator<< |
56 | Logstream::operator<< | Logstream::operator<< |
60 | Logstream::operator<< | Logstream::operator<< |
64 | Logstream::operator<< | Logstream::operator<< |
68 | Logstream::operator<< | Logstream::operator<< |
72 | Logstream::operator<< | Logstream::operator<< |
76 | Logstream::operator<< | Logstream::operator<< |
80 | Logstream::operator<< | Logstream::operator<< |
84 | Logstream::operator<< | Logstream::operator<< |
88 | Logstream::flush | Logstream::operator<< |
92 | Logstream::flush |
Change | Effect | |
---|---|---|
1 | Size of this global data has been changed from 56 bytes to 60 bytes. | Applications will obtain a different value and execution may change. |
Change | Effect | |
---|---|---|
1 | Field moveParanoia 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. |
2 | Size of this type has been changed from 56 bytes to 60 bytes. | The fields or parameters of such data type may be incorrectly initialized or accessed by old client applications. |