Binary compatibility report for the CppCMS library between 0.99.5 and 0.99.6 versions on x86
Test Info
Library Name | CppCMS |
Version #1 | 0.99.5 |
Version #2 | 0.99.6 |
CPU Architecture | x86 |
GCC Version | 4.5 |
Test Results
Total Header Files | 46 |
Total Shared Libraries | 2 |
Total Symbols / Types | 1294 / 629 |
Verdict | Incompatible (1.39%) |
---|
Problem Summary
| Severity | Count |
---|
Added Symbols | - | 38 |
Removed Symbols | High | 15 |
Problems with Data Types | High | 0 |
Medium | 2 |
Low | 0 |
Problems with Symbols | High | 0 |
Medium | 0 |
Low | 0 |
Problems with Constants | Low | 0 |
Added Symbols (38)
base64.h,
libcppcms.so.1.0.0
namespace cppcms::b64url
encode ( std::string const& input )
[ symbol: _ZN6cppcms6b64url6encodeERKSs ]
crypto.h,
libcppcms.so.1.0.0
namespace cppcms::crypto
cbc::create ( cbc::cbc_type type ) [static]
[ symbol: _ZN6cppcms6crypto3cbc6createENS1_8cbc_typeE ]
cbc::create ( std::string const& name ) [static]
[ symbol: _ZN6cppcms6crypto3cbc6createERKSs ]
cbc::~cbc [in-charge-deleting] ( )
[ symbol: _ZN6cppcms6crypto3cbcD0Ev ]
cbc::~cbc [in-charge] ( )
[ symbol: _ZN6cppcms6crypto3cbcD1Ev ]
hmac::append ( void const* ptr, size_t size )
[ symbol: _ZN6cppcms6crypto4hmac6appendEPKvj ]
hmac::digest_size ( ) const
[ symbol: _ZNK6cppcms6crypto4hmac11digest_sizeEv ]
hmac::hmac [in-charge] ( std::auto_ptr<message_digest> digest, key const& k )
[ symbol: _ZN6cppcms6crypto4hmacC1ESt8auto_ptrINS0_14message_digestEERKNS0_3keyE ]
hmac::hmac [in-charge] ( std::string const& name, key const& k )
[ symbol: _ZN6cppcms6crypto4hmacC1ERKSsRKNS0_3keyE ]
hmac::hmac [not-in-charge] ( std::auto_ptr<message_digest> digest, key const& k )
[ symbol: _ZN6cppcms6crypto4hmacC2ESt8auto_ptrINS0_14message_digestEERKNS0_3keyE ]
hmac::hmac [not-in-charge] ( std::string const& name, key const& k )
[ symbol: _ZN6cppcms6crypto4hmacC2ERKSsRKNS0_3keyE ]
hmac::readout ( void* ptr )
[ symbol: _ZN6cppcms6crypto4hmac7readoutEPv ]
hmac::~hmac [in-charge] ( )
[ symbol: _ZN6cppcms6crypto4hmacD1Ev ]
hmac::~hmac [not-in-charge] ( )
[ symbol: _ZN6cppcms6crypto4hmacD2Ev ]
key::data ( ) const
[ symbol: _ZNK6cppcms6crypto3key4dataEv ]
key::key [in-charge] ( )
[ symbol: _ZN6cppcms6crypto3keyC1Ev ]
key::key [in-charge] ( char const* s )
[ symbol: _ZN6cppcms6crypto3keyC1EPKc ]
key::key [in-charge] ( key const& other )
[ symbol: _ZN6cppcms6crypto3keyC1ERKS1_ ]
key::key [in-charge] ( std::string const& p1 )
[ symbol: _ZN6cppcms6crypto3keyC1ERKSs ]
key::key [in-charge] ( void const* data, size_t length )
[ symbol: _ZN6cppcms6crypto3keyC1EPKvj ]
key::key [not-in-charge] ( )
[ symbol: _ZN6cppcms6crypto3keyC2Ev ]
key::key [not-in-charge] ( char const* s )
[ symbol: _ZN6cppcms6crypto3keyC2EPKc ]
key::key [not-in-charge] ( key const& other )
[ symbol: _ZN6cppcms6crypto3keyC2ERKS1_ ]
key::key [not-in-charge] ( std::string const& p1 )
[ symbol: _ZN6cppcms6crypto3keyC2ERKSs ]
key::key [not-in-charge] ( void const* data, size_t length )
[ symbol: _ZN6cppcms6crypto3keyC2EPKvj ]
key::operator= ( key const& p1 )
[ symbol: _ZN6cppcms6crypto3keyaSERKS1_ ]
key::read_from_file ( std::string const& file_name )
[ symbol: _ZN6cppcms6crypto3key14read_from_fileERKSs ]
key::reset ( )
[ symbol: _ZN6cppcms6crypto3key5resetEv ]
key::set ( void const* ptr, size_t len )
[ symbol: _ZN6cppcms6crypto3key3setEPKvj ]
key::set_hex ( char const* ptr, size_t len )
[ symbol: _ZN6cppcms6crypto3key7set_hexEPKcj ]
key::size ( ) const
[ symbol: _ZNK6cppcms6crypto3key4sizeEv ]
key::~key [in-charge] ( )
[ symbol: _ZN6cppcms6crypto3keyD1Ev ]
key::~key [not-in-charge] ( )
[ symbol: _ZN6cppcms6crypto3keyD2Ev ]
message_digest::create_by_name ( std::string const& name ) [static]
[ symbol: _ZN6cppcms6crypto14message_digest14create_by_nameERKSs ]
message_digest::md5 ( ) [static]
[ symbol: _ZN6cppcms6crypto14message_digest3md5Ev ]
message_digest::sha1 ( ) [static]
[ symbol: _ZN6cppcms6crypto14message_digest4sha1Ev ]
message_digest::~message_digest [in-charge-deleting] ( )
[ symbol: _ZN6cppcms6crypto14message_digestD0Ev ]
message_digest::~message_digest [in-charge] ( )
[ symbol: _ZN6cppcms6crypto14message_digestD1Ev ]
to the top
Removed Symbols (15)
crypto.h,
libcppcms.so.1.0.0
namespace cppcms
hmac::append ( void const* ptr, size_t size )
[ symbol: _ZN6cppcms4hmac6appendEPKvj ]
hmac::digest_size ( ) const
[ symbol: _ZNK6cppcms4hmac11digest_sizeEv ]
hmac::hmac [in-charge] ( std::auto_ptr<message_digest> digest, std::string const& key )
[ symbol: _ZN6cppcms4hmacC1ESt8auto_ptrINS_14message_digestEERKSs ]
hmac::hmac [in-charge] ( std::string const& name, std::string const& key )
[ symbol: _ZN6cppcms4hmacC1ERKSsS2_ ]
hmac::hmac [not-in-charge] ( std::auto_ptr<message_digest> digest, std::string const& key )
[ symbol: _ZN6cppcms4hmacC2ESt8auto_ptrINS_14message_digestEERKSs ]
hmac::hmac [not-in-charge] ( std::string const& name, std::string const& key )
[ symbol: _ZN6cppcms4hmacC2ERKSsS2_ ]
hmac::readout ( void* ptr )
[ symbol: _ZN6cppcms4hmac7readoutEPv ]
hmac::~hmac [in-charge] ( )
[ symbol: _ZN6cppcms4hmacD1Ev ]
hmac::~hmac [not-in-charge] ( )
[ symbol: _ZN6cppcms4hmacD2Ev ]
message_digest::create_by_name ( std::string const& name ) [static]
[ symbol: _ZN6cppcms14message_digest14create_by_nameERKSs ]
message_digest::md5 ( ) [static]
[ symbol: _ZN6cppcms14message_digest3md5Ev ]
message_digest::sha1 ( ) [static]
[ symbol: _ZN6cppcms14message_digest4sha1Ev ]
message_digest::~message_digest [in-charge-deleting] ( )
[ symbol: _ZN6cppcms14message_digestD0Ev ]
message_digest::~message_digest [in-charge] ( )
[ symbol: _ZN6cppcms14message_digestD1Ev ]
vtable for message_digest [data]
[ symbol: _ZTVN6cppcms14message_digestE ]
to the top
Problems with Data Types, Medium Severity (2)
session_cookies.h
namespace cppcms::sessions
[+] class encryptor (2)
| Change |
Effect |
1 | Pure virtual method encryptor::decrypt ( std::string const& cipher, std::string& plain ) has been added to this class instead of encryptor::decrypt ( std::string const& cipher, std::string& plain, time_t* timeout ). | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
2 | Pure virtual method encryptor::encrypt ( std::string const& plain ) has been added to this class instead of encryptor::encrypt ( std::string const& plain, time_t timeout ). | Applications will provide an older method to the library instead of expected newely added virtual method. It may result in crash or incorrect behavior of applications. |
[+] show v-table (old and new)
Offset | Virtual Table (Old) - 6 entries | Virtual Table (New) - 6 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 | encryptor::~encryptor | encryptor::~encryptor |
20 | encryptor::~encryptor | encryptor::~encryptor |
[+] affected symbols (1)
encryptor::~encryptor [in-charge] ( )Call of this method may result in crash or incorrect behavior of applications because some pure virtual method in v-table has been replaced by other.
to the top
Header Files (46)
application.h
applications_pool.h
archive_traits.h
base64.h
base_content.h
base_view.h
cache_interface.h
cache_pool.h
config.h
cppcms_error.h
crypto.h
cstdint.h
defs.h
encoding.h
filters.h
form.h
forwarder.h
http_content_type.h
http_context.h
http_cookie.h
http_file.h
http_request.h
http_response.h
json.h
locale_fwd.h
localization.h
mem_bind.h
mount_point.h
rpc_json.h
serialization.h
serialization_classes.h
service.h
session_api.h
session_cookies.h
session_dual.h
session_interface.h
session_pool.h
session_sid.h
session_storage.h
thread_pool.h
urandom.h
url_dispatcher.h
util.h
view.h
views_pool.h
xss.h
to the top
Shared Libraries (2)
libbooster.so.0.0.0
libcppcms.so.1.0.0
to the top