Module Name:    src
Committed By:   agc
Date:           Wed Sep  1 06:18:21 UTC 2010

Modified Files:
        src/crypto/external/bsd/netpgp/dist/src/netpgpkeys: netpgpkeys.c

Log Message:
+ if we're going to the trouble of testing the return value from the
setoption() function, probably best to return one

+ check for a valid entry in the JSON array instead of trusting that
we have one

+ if there is no JSON value to print, don't print it

+ if we've set the keyring from an ssh key file, then we're using ssh
keys - no need to set that value separately. This means that

        % netpgpkeys --sshkeyfile ~/.ssh/id_test.pub -l
        1 key found
        signature  2048/RSA (Encrypt or Sign) 8368881b3b9832ec 2010-08-26
        Key fingerprint: 3abd bf38 33a5 1f87 d704 ad42 8368 881b 3b98 32ec
        uid              osx-vm1.crowthorne.alistaircrooks.co.uk 
(/home/agc/.ssh/id_test.pub) <a...@osx-vm1.crowthorne.alistaircrooks.co.uk>

        %

lists ssh pubkeys properly, no need for other tautological arguments


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 \
    src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.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/netpgpkeys/netpgpkeys.c
diff -u src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.16 src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.17
--- src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c:1.16	Fri Aug 13 18:29:41 2010
+++ src/crypto/external/bsd/netpgp/dist/src/netpgpkeys/netpgpkeys.c	Wed Sep  1 06:18:21 2010
@@ -179,6 +179,10 @@
 {
 	int	i;
 
+	if (obj == NULL) {
+		(void) fprintf(stderr, "No object found\n");
+		return;
+	}
 	for (i = 0 ; i < depth ; i++) {
 		p(fp, " ", NULL);
 	}
@@ -332,7 +336,9 @@
 	from = to = tok = 0;
 	/* convert from string into an mj structure */
 	(void) mj_parse(&ids, json, &from, &to, &tok);
-	idc = mj_arraycount(&ids);
+	if ((idc = mj_arraycount(&ids)) == 1 && strchr(json, '{') == NULL) {
+		idc = 0;
+	}
 	(void) fprintf(fp, "%d key%s found\n", idc, (idc == 1) ? "" : "s");
 	for (i = 0 ; i < idc ; i++) {
 		formatobj(fp, &ids.value.v[i], psigs);
@@ -474,6 +480,7 @@
 		netpgp_setvar(netpgp, "res", arg);
 		break;
 	case SSHKEYFILE:
+		netpgp_setvar(netpgp, "ssh keys", "1");
 		netpgp_setvar(netpgp, "sshkeyfile", arg);
 		break;
 	case OPS_DEBUG:
@@ -483,6 +490,7 @@
 		p->cmd = HELP_CMD;
 		break;
 	}
+	return 1;
 }
 
 /* we have -o option=value -- parse, and process */
@@ -548,7 +556,7 @@
 		if (ch >= LIST_KEYS) {
 			/* getopt_long returns 0 for long options */
 			if (!setoption(&netpgp, &p, options[optindex].val, optarg, &homeset)) {
-				(void) fprintf(stderr, "Bad option\n");
+				(void) fprintf(stderr, "Bad setoption result %d\n", ch);
 			}
 		} else {
 			switch (ch) {
@@ -566,7 +574,7 @@
 				break;
 			case 'o':
 				if (!parse_option(&netpgp, &p, optarg, &homeset)) {
-					(void) fprintf(stderr, "Bad option\n");
+					(void) fprintf(stderr, "Bad parse_option\n");
 				}
 				break;
 			case 's':

Reply via email to