From aaa3594250c61a72e10850386c79298b950c46a6 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Thu, 25 Jun 2009 18:32:53 +0200 Subject: [PATCH 1/5] In parse_and_print(), break out of IN_ESCAPE properly. --- src/dumpsexp.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git src/dumpsexp.c src/dumpsexp.c index 8f5c0d3..ba6e45f 100644 --- src/dumpsexp.c +++ src/dumpsexp.c @@ -488,7 +488,8 @@ parse_and_print (FILE *fp) state = IN_STRING; break; } - + break; + case IN_OCT_ESC: state = IN_STRING; break; -- 1.6.3.2 From 9374684d13dd0225e4c91e8a925264cbc5173fd0 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Thu, 25 Jun 2009 18:32:53 +0200 Subject: [PATCH 2/5] Remove a superfluos line in unquote_string(). --- src/sexp.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git src/sexp.c src/sexp.c index 59a4e7e..f825624 100644 --- src/sexp.c +++ src/sexp.c @@ -910,7 +910,6 @@ unquote_string (const char *string, size_t length, unsigned char *buf) { s++; n--; } - esc = 0; break; case '\n': /* ignore LF[,CR] */ -- 1.6.3.2 From 79e9bc4de951c023ac65b8730387dd7de2a3e6fb Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Thu, 25 Jun 2009 18:32:53 +0200 Subject: [PATCH 3/5] Make sure rc is defined when it's returned by main(). --- src/dumpsexp.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git src/dumpsexp.c src/dumpsexp.c index ba6e45f..aecae18 100644 --- src/dumpsexp.c +++ src/dumpsexp.c @@ -601,8 +601,7 @@ main (int argc, char **argv) } else { - if ( parse_and_print (fp) ) - rc = 1; + rc = parse_and_print (fp); fclose (fp); } } -- 1.6.3.2 From efad935f9e5a60cafb029ba4dc954238302e32f5 Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Thu, 25 Jun 2009 18:32:53 +0200 Subject: [PATCH 4/5] Move a NULL check in md_read() up a level. Otherwise it's ineffective. I'm not sure if the check is really necessary, though. --- cipher/md.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git cipher/md.c cipher/md.c index 5dfbbd9..35a550d 100644 --- cipher/md.c +++ cipher/md.c @@ -946,10 +946,10 @@ md_read( gcry_md_hd_t a, int algo ) { GcryDigestEntry *r = a->ctx->list; - if (! algo) + if ( !algo && r ) { /* return the first algorithm */ - if (r && r->next) + if (r->next) log_debug ("more than one algorithm in md_read(0)\n"); return r->digest->read( &r->context.c ); } -- 1.6.3.2 From 9d9c98fa443b8d65e2ec7c55fc12344b66c990df Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Thu, 25 Jun 2009 18:32:53 +0200 Subject: [PATCH 5/5] Mark a write-only buffer in parse_and_print() --- src/dumpsexp.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git src/dumpsexp.c src/dumpsexp.c index aecae18..cad329f 100644 --- src/dumpsexp.c +++ src/dumpsexp.c @@ -466,6 +466,10 @@ parse_and_print (FILE *fp) case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': state = IN_OCT_ESC; + /* + * XXX: We always write to quote_buf[0] + * and never read from the buffer at all. + */ quote_idx = 0; quote_buf[quote_idx++] = c; break; -- 1.6.3.2