2002-09-02 Marcus Brinkmann <marcus@g10code.de>

* gpg/t-keylist.c (main): Test PATTERN for NULL before printing.
	Reported by Dr. Stefan Dalibor <Dr.Stefan.Dalibor@bfa.de>.
This commit is contained in:
Marcus Brinkmann 2002-09-02 13:01:29 +00:00
parent 442f2fe541
commit 05c75f41a5
2 changed files with 106 additions and 89 deletions

View File

@ -1,3 +1,8 @@
2002-09-02 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-keylist.c (main): Test PATTERN for NULL before printing.
Reported by Dr. Stefan Dalibor <Dr.Stefan.Dalibor@bfa.de>.
2002-08-01 Marcus Brinkmann <marcus@g10code.de> 2002-08-01 Marcus Brinkmann <marcus@g10code.de>
* gpg/t-edit.c: Also add a test for the expire command (testing * gpg/t-edit.c: Also add a test for the expire command (testing

View File

@ -41,22 +41,24 @@ doit ( GpgmeCtx ctx, const char *pattern )
err = gpgme_op_keylist_start (ctx, pattern, 0); err = gpgme_op_keylist_start (ctx, pattern, 0);
fail_if_err (err); fail_if_err (err);
while ( !(err = gpgme_op_keylist_next ( ctx, &key )) ) { while (!(err = gpgme_op_keylist_next (ctx, &key)))
{
char *p; char *p;
const char *s; const char *s;
int i; int i;
printf ("<!-- Begin key object (%p) -->\n", key); printf ("<!-- Begin key object (%p) -->\n", key);
p = gpgme_key_get_as_xml (key); p = gpgme_key_get_as_xml (key);
if ( p ) { if (p)
{
fputs (p, stdout); fputs (p, stdout);
free (p); free (p);
} }
else else
fputs("<!-- Ooops: gpgme_key_get_as_xml failed -->\n", stdout); fputs("<!-- Ooops: gpgme_key_get_as_xml failed -->\n", stdout);
for (i = 0; ; i++)
for (i=0; ; i++ ) { {
s = gpgme_key_get_string_attr (key, GPGME_ATTR_KEYID, NULL, i); s = gpgme_key_get_string_attr (key, GPGME_ATTR_KEYID, NULL, i);
if (!s) if (!s)
break; break;
@ -66,7 +68,8 @@ doit ( GpgmeCtx ctx, const char *pattern )
s = gpgme_key_get_string_attr (key, GPGME_ATTR_KEY_CAPS, NULL, i); s = gpgme_key_get_string_attr (key, GPGME_ATTR_KEY_CAPS, NULL, i);
printf ("<!-- caps.%d=%s -->\n", i, s); printf ("<!-- caps.%d=%s -->\n", i, s);
} }
for (i=0; ; i++ ) { for (i = 0; ; i++)
{
s = gpgme_key_get_string_attr (key, GPGME_ATTR_NAME, NULL, i); s = gpgme_key_get_string_attr (key, GPGME_ATTR_NAME, NULL, i);
if (!s) if (!s)
break; break;
@ -106,22 +109,25 @@ check_two_contexts (void)
GpgmeKey key; GpgmeKey key;
err = gpgme_new(&ctx1); fail_if_err (err); err = gpgme_new(&ctx1); fail_if_err (err);
err = gpgme_op_keylist_start(ctx1, "", 1); fail_if_err (err); err = gpgme_op_keylist_start(ctx1, "", 1);
fail_if_err (err);
err = gpgme_new(&ctx2); fail_if_err (err); err = gpgme_new(&ctx2); fail_if_err (err);
err = gpgme_op_keylist_start(ctx2, "", 1); fail_if_err (err); err = gpgme_op_keylist_start(ctx2, "", 1);
fail_if_err (err);
while ( (err=gpgme_op_keylist_next(ctx2, &key)) != GPGME_EOF) { while ((err = gpgme_op_keylist_next (ctx2, &key)) != GPGME_EOF)
gpgme_key_release (key); gpgme_key_release (key);
}
if (err != GPGME_EOF) if (err != GPGME_EOF)
fail_if_err (err); fail_if_err (err);
while ( (err=gpgme_op_keylist_next(ctx1, &key)) != GPGME_EOF) { while ((err=gpgme_op_keylist_next(ctx1, &key)) != GPGME_EOF)
gpgme_key_release (key); gpgme_key_release (key);
}
if (err != GPGME_EOF) if (err != GPGME_EOF)
fail_if_err (err); fail_if_err (err);
} }
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
@ -130,11 +136,14 @@ main (int argc, char **argv )
int loop = 0; int loop = 0;
const char *pattern; const char *pattern;
if( argc ) { if (argc)
argc--; argv++; {
argc--;
argv++;
} }
if (argc && !strcmp( *argv, "--loop" ) ) { if (argc && !strcmp( *argv, "--loop"))
{
loop = 1; loop = 1;
argc--; argv++; argc--; argv++;
} }
@ -145,11 +154,14 @@ main (int argc, char **argv )
err = gpgme_new (&ctx); err = gpgme_new (&ctx);
fail_if_err (err); fail_if_err (err);
gpgme_set_keylist_mode (ctx, 1); /* no validity calculation */ /* No validity calculation. */
do { gpgme_set_keylist_mode (ctx, 1);
fprintf (stderr, "** pattern=`%s'\n", pattern ); do
{
fprintf (stderr, "** pattern=`%s'\n", pattern ? pattern : "(null)");
doit (ctx, pattern); doit (ctx, pattern);
} while ( loop ); }
while (loop);
gpgme_release (ctx); gpgme_release (ctx);
check_two_contexts (); check_two_contexts ();