diff options
author | Marcus Brinkmann <[email protected]> | 2006-12-20 22:52:14 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2006-12-20 22:52:14 +0000 |
commit | be2c54dd948fdad2fd8d40cbc84f64a0857deed0 (patch) | |
tree | 174afef2117ec8138371e46f930bb7d14a002a2d /sm/base64.c | |
parent | 2006-12-18 Marcus Brinkmann <[email protected]> (diff) | |
download | gnupg-be2c54dd948fdad2fd8d40cbc84f64a0857deed0.tar.gz gnupg-be2c54dd948fdad2fd8d40cbc84f64a0857deed0.zip |
2006-12-20 Marcus Brinkmann <[email protected]>
* base64.c: Add new members READER and WRITER in union U2.
(gpgsm_create_reader): Initialise CTX->u2.reader.
(gpgsm_destroy_reader): Invoke ksba_reader_release. Return early
if CTX is NULL.
(gpgsm_create_writer): Initialise CTX->u2.writer.
(gpgsm_destroy_writer): Invoke ksba_writer_release. Return early
if CTX is NULL.
Diffstat (limited to '')
-rw-r--r-- | sm/base64.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sm/base64.c b/sm/base64.c index 37ec9ce35..0c3ebd150 100644 --- a/sm/base64.c +++ b/sm/base64.c @@ -92,6 +92,11 @@ struct base64_context_s { struct reader_cb_parm_s rparm; struct writer_cb_parm_s wparm; } u; + + union { + ksba_reader_t reader; + ksba_writer_t writer; + } u2; }; @@ -568,6 +573,7 @@ gpgsm_create_reader (Base64Context *ctx, return rc; } + (*ctx)->u2.reader = r; *r_reader = r; return 0; } @@ -582,6 +588,10 @@ gpgsm_reader_eof_seen (Base64Context ctx) void gpgsm_destroy_reader (Base64Context ctx) { + if (!ctx) + return; + + ksba_reader_release (ctx->u2.reader); xfree (ctx); } @@ -630,6 +640,7 @@ gpgsm_create_writer (Base64Context *ctx, return rc; } + (*ctx)->u2.writer = w; *r_writer = w; return 0; } @@ -654,5 +665,9 @@ gpgsm_finish_writer (Base64Context ctx) void gpgsm_destroy_writer (Base64Context ctx) { + if (!ctx) + return; + + ksba_writer_release (ctx->u2.writer); xfree (ctx); } |