Bug 1294607

Summary: certutil fails to merge SQL databases after modifying trust in a certificate
Product: Red Hat Enterprise Linux 7 Reporter: Pavel Moravec <pmoravec>
Component: nss-utilAssignee: Bob Relyea <rrelyea>
Status: CLOSED ERRATA QA Contact: Hubert Kario <hkario>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: cww, dueno, emaldona, hkario, kengert, mgrepl, qe-baseos-security
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: nss-3.28.3-5.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1294606 Environment:
Last Closed: 2017-08-01 16:47:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1294606    
Bug Blocks: 1298243, 1377248    

Description Pavel Moravec 2015-12-29 08:59:00 UTC
+++ This bug was initially created as a clone of Bug #1294606 +++

Description of problem:
Having sql database with a certificate that has modified a trust attribute and trying to merge this db with another one, it fails with error:

certutil: Could not merge object unnamed (type Trust): Unknown code ___P 3


Version-Release number of selected component (if applicable):
nss-tools-3.19.1-3.el6_6.x86_64


How reproducible:
100%


Steps to Reproduce:
rm -rf db1 db2
mkdir db1
echo 123456 > db1/pwdfile
certutil -N -d sql:./db1 -f ./db1/pwdfile
certutil -A -d sql:./db1 -i test.crt -n test -t P,, -f ./db1/pwdfile
certutil -M -d sql:./db1 -n test -t T,, -f ./db1/pwdfile

mkdir db2
echo 123456 > db2/pwdfile
certutil -N -d sql:./db2 -f ./db2/pwdfile

certutil --merge -d sql:./db2  --source-dir sql:./db1 -f ./db2/pwdfile -@ ./db1/pwdfile


Actual results:
certutil --merge fails with:
certutil: Could not merge object unnamed (type Trust): Unknown code ___P 3


Expected results:
certutil --merge works well


Additional info:
commenting out "certutil -M" or replacing it by deletion and re-creating test's certificate prevents this bug. I.e. the problem originates in certutil modifying the trust attributes. Therefore either:
- this "-M" operation is the buggy one, 
- or at least it leaves the sql database in such (valid) state that --merge operation cant cope with

Comment 7 errata-xmlrpc 2017-08-01 16:47:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2017:1977