Hi!
Infreedesktop-sdk[1] <https://gitlab.com/freedesktop-sdk> we're trying to keep
ABI compatibility when updating elements like cups to new releases. In order to
achieve this we use libabigail[2] <https://sourceware.org/libabigail/> tool to
automate ABI compat checks. During update NSS from 3.39 to 3.41 (we missed 3.40
release) our tool produced following complaint:
┌───────────────────────────────┐│ ABI Break: libnss3.so:libnss3
│└───────────────────────────────┘Functions changes summary: 0 Removed, 1
Changed (64 filtered out), 0 Added functionsVariables changes summary: 0
Removed, 0 Changed, 0 Added variable1 function with some indirect sub-type
change: [C]'function SECStatus
CERT_AddOCSPAcceptableResponses(CERTOCSPRequest*, SECOidTag, ...)' at
ocsp.c:2203:1 has some indirect sub-type changes: parameter 2 of type
'typedef SECOidTag' has sub-type changes: underlying type 'enum
__anonymous_enum__' at secoidt.h:34:1 changed: type size hasn't changed
4 enumerator insertions:
'__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value '357'
'__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value '359'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360' 1
enumerator change: '__anonymous_enum__::SEC_OID_TOTAL' from value
'357' to '361' at secoidt.h:34:1┌───────────────────────────────────────┐│ ABI
Break: libnssutil3.so:libnssutil3
│└───────────────────────────────────────┘Functions changes summary: 0 Removed,
1 Changed (12 filtered out), 0 Added functionsVariables changes summary: 0
Removed, 0 Changed, 0 Added variable1 function with some indirect sub-type
change: [C]'function SECStatus NSS_GetAlgorithmPolicy(SECOidTag, PRUint32*)'
at secoid.c:2217:1 has some indirect sub-type changes: parameter 1 of type
'typedef SECOidTag' has sub-type changes: underlying type 'enum
__anonymous_enum__' at secoidt.h:34:1 changed: type size hasn't changed
4 enumerator insertions:
'__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value '357'
'__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value '359'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360' 1
enumerator change: '__anonymous_enum__::SEC_OID_TOTAL' from value
'357' to '361' at secoidt.h:34:1┌───────────────────────────────────┐│ ABI
Break: libsmime3.so:libsmime3 │└───────────────────────────────────┘Functions
changes summary: 0 Removed, 1 Changed (99 filtered out), 0 Added
functionsVariables changes summary: 0 Removed, 0 Changed, 0 Added variable1
function with some indirect sub-type change: [C]'function PK11SymKey*
NSS_CMSContentInfo_GetBulkKey(NSSCMSContentInfo*)' at cmscinfo.c:363:1 has some
indirect sub-type changes: parameter 1 of type 'NSSCMSContentInfo*' has
sub-type changes: in pointed to type 'typedef NSSCMSContentInfo' at
cmst.h:54:1: underlying type 'struct NSSCMSContentInfoStr' at
cmst.h:126:1 changed: type size hasn't changed 1 data member
changes (2 filtered): type of 'NSSCMSContent
NSSCMSContentInfoStr::content' changed: underlying type 'union
NSSCMSContentUnion' at cmst.h:113:1 changed: type size hasn't
changed 1 data member changes (3 filtered): type
of 'NSSCMSEncryptedData* NSSCMSContentUnion::encryptedData' changed:
in pointed to type 'typedef NSSCMSEncryptedData' at cmst.h:65:1:
underlying type 'struct NSSCMSEncryptedDataStr' at cmst.h:463:1
changed: type size hasn't changed 1
data member changes (1 filtered): type of
'NSSCMSAttribute** NSSCMSEncryptedDataStr::unprotectedAttr' changed:
in pointed to type 'NSSCMSAttribute*':
in pointed to type 'typedef NSSCMSAttribute' at cmst.h:69:1:
underlying type 'struct NSSCMSAttributeStr' at cmst.h:482:1 changed:
type size hasn't changed
1 data member change: type of 'SECOidData*
NSSCMSAttributeStr::typeTag' changed: in
pointed to type 'typedef SECOidData' at secoidt.h:16:1:
underlying type 'struct SECOidDataStr' at secoidt.h:513:1 changed:
type size hasn't changed
1 data member change:
type of 'SECOidTag SECOidDataStr::offset' changed:
underlying type 'enum __anonymous_enum__' at secoidt.h:34:1 changed:
type size hasn't changed
4 enumerator insertions:
'__anonymous_enum__::SEC_OID_X509_ANY_EXT_KEY_USAGE' value
'357'
'__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_IKE' value '358'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_END' value
'359'
'__anonymous_enum__::SEC_OID_IPSEC_IKE_INTERMEDIATE' value '360'
1 enumerator change:
'__anonymous_enum__::SEC_OID_TOTAL' from value '357' to '361' at
secoidt.h:34:1
As part of our discussion[3]
<https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/874> about
what to do with that we would like to ask about your opinion on the matter.
Especially I wanted to ask if reported change was intentional and if it's safe
for backward compatibility thus if above report is a false positive. I would be
grateful if you can find time to respond. Thank you.
[1] https://gitlab.com/freedesktop-sdk <https://gitlab.com/freedesktop-sdk>
[2] https://sourceware.org/libabigail/ <https://sourceware.org/libabigail/>
[3] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/825
<https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/825>
--
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto