Module Name: src Committed By: agc Date: Sat Aug 21 19:00:43 UTC 2010
Modified Files: src/crypto/external/bsd/netpgp/dist/src/lib: keyring.c Log Message: avoid false positives when matching a (non-existent) encryption subkey use debugging output to point to the matching key To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 \ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c diff -u src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.43 src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.44 --- src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c:1.43 Sun Aug 15 16:10:56 2010 +++ src/crypto/external/bsd/netpgp/dist/src/lib/keyring.c Sat Aug 21 19:00:43 2010 @@ -57,7 +57,7 @@ #if defined(__NetBSD__) __COPYRIGHT("@(#) Copyright (c) 2009 The NetBSD Foundation, Inc. All rights reserved."); -__RCSID("$NetBSD: keyring.c,v 1.43 2010/08/15 16:10:56 agc Exp $"); +__RCSID("$NetBSD: keyring.c,v 1.44 2010/08/21 19:00:43 agc Exp $"); #endif #ifdef HAVE_FCNTL_H @@ -834,6 +834,9 @@ } return &keyring->keys[*from]; } + if (memcmp(&keyring->keys[*from].encid, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", OPS_KEY_ID_SIZE) == 0) { + continue; + } if (memcmp(&keyring->keys[*from].encid, keyid, OPS_KEY_ID_SIZE) == 0 || memcmp(&keyring->keys[*from].encid[OPS_KEY_ID_SIZE / 2], keyid, OPS_KEY_ID_SIZE / 2) == 0) { if (pubkey) { @@ -924,12 +927,12 @@ for (keyp = &keyring->keys[*from]; *from < keyring->keyc; *from += 1, keyp++) { uidp = keyp->uids; for (i = 0 ; i < keyp->uidc; i++, uidp++) { - if (__ops_get_debug_level(__FILE__)) { - (void) fprintf(io->outs, - "keyid \"%s\" len %" PRIsize "u\n", - (char *) *uidp, len); - } if (regexec(&r, (char *)*uidp, 0, NULL, 0) == 0) { + if (__ops_get_debug_level(__FILE__)) { + (void) fprintf(io->outs, + "MATCHED keyid \"%s\" len %" PRIsize "u\n", + (char *) *uidp, len); + } regfree(&r); return keyp; }