diff options
Diffstat (limited to 'sm')
-rw-r--r-- | sm/ChangeLog | 5 | ||||
-rw-r--r-- | sm/base64.c | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/sm/ChangeLog b/sm/ChangeLog index 44e4eb3a1..dc5989ae5 100644 --- a/sm/ChangeLog +++ b/sm/ChangeLog @@ -1,3 +1,8 @@ +2011-03-03 Werner Koch <[email protected]> + + * base64.c (base64_finish_write): Do not copy to radbuf to get rid + of a faulty gcc 4.4 "used uninitialized" warning. + 2011-03-01 Werner Koch <[email protected]> * certreqgen.c (pSERIAL, pISSUERDN, pNOTBEFORE, pNOTAFTER) diff --git a/sm/base64.c b/sm/base64.c index 1539e2a47..4a67d6101 100644 --- a/sm/base64.c +++ b/sm/base64.c @@ -484,8 +484,8 @@ plain_writer_cb (void *cb_value, const void *buffer, size_t count) static int base64_finish_write (struct writer_cb_parm_s *parm) { - unsigned char radbuf[4]; - int i, c, idx, quad_count; + unsigned char *radbuf; + int c, idx, quad_count; estream_t stream = parm->stream; if (!parm->wrote_begin) @@ -494,11 +494,10 @@ base64_finish_write (struct writer_cb_parm_s *parm) /* flush the base64 encoding */ idx = parm->base64.idx; quad_count = parm->base64.quad_count; - for (i=0; i < idx; i++) - radbuf[i] = parm->base64.radbuf[i]; - if (idx) { + radbuf = parm->base64.radbuf; + c = bintoasc[(*radbuf>>2)&077]; es_putc (c, stream); if (idx == 1) |