RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
Module: rpm Date: 28-Aug-2007 21:37:20
Branch: HEAD Handle: 2007082820371901
Modified files:
rpm CHANGES
rpm/lib rpmts.c
Log:
- permit keyutils caching disable, don't re-add if already cached.
Summary:
Revision Changes Path
1.1606 +1 -0 rpm/CHANGES
2.89 +5 -2 rpm/lib/rpmts.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.1605 -r1.1606 CHANGES
--- rpm/CHANGES 28 Aug 2007 19:22:34 -0000 1.1605
+++ rpm/CHANGES 28 Aug 2007 19:37:19 -0000 1.1606
@@ -1,4 +1,5 @@
4.5 -> 5.0:
+ - jbj: permit keyutils caching disable, don't re-add if already cached.
- jbj: use keyutils for pubkey cache.
- jbj: update id.po (Translation Project).
- jbj: teach --querytags to chain through headerCompoundFormats.
@@ .
patch -p0 <<'@@ .'
Index: rpm/lib/rpmts.c
============================================================================
$ cvs diff -u -r2.88 -r2.89 rpmts.c
--- rpm/lib/rpmts.c 28 Aug 2007 19:22:34 -0000 2.88
+++ rpm/lib/rpmts.c 28 Aug 2007 19:37:20 -0000 2.89
@@ -248,6 +248,7 @@
pgpDigParams pubp = rpmtsPubkey(ts);
rpmRC res = RPMRC_NOKEY;
const char * pubkeysource = NULL;
+ int krcache = 1; /* XXX assume pubkeys are cacved in keyutils keyring. */
int xx;
if (sig == NULL || dig == NULL || sigp == NULL || pubp == NULL)
@@ -271,7 +272,7 @@
#if defined(HAVE_KEYUTILS_H)
/* Try keyutils keyring lookup. */
- if (ts->pkpkt == NULL) {
+ if (krcache && ts->pkpkt == NULL) {
key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING;
const char * krprefix = "rpm:gpg:pubkey:";
char krfp[32];
@@ -291,6 +292,7 @@
xx = keyctl_read_alloc(key, (void **)&ts->pkpkt);
if (xx > 0) {
pubkeysource = xstrdup(krn);
+ krcache = 0; /* XXX don't bother caching. */
} else {
ts->pkpkt = _free(ts->pkpkt);
ts->pkpktlen = 0;
@@ -396,7 +398,8 @@
#if defined(HAVE_KEYUTILS_H)
/* Save the pubkey in the keyutils keyring. */
- { key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING;
+ if (krcache) {
+ key_serial_t keyring = KEY_SPEC_PROCESS_KEYRING;
const char * krprefix = "rpm:gpg:pubkey:";
char krfp[32];
char * krn = alloca(strlen(krprefix) + sizeof("12345678"));
@@ .
Received on Tue Aug 28 21:37:20 2007