aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2011-03-03 11:40:54 +0000
committerWerner Koch <[email protected]>2011-03-03 11:40:54 +0000
commitea41f5b4c19dade3a89d486ce1c2530ac11226cc (patch)
tree0b0607001036f9d9ac691baa44a446765d3faf5a
parentSimplify the management of the stream list in estream.c (diff)
downloadgnupg-ea41f5b4c19dade3a89d486ce1c2530ac11226cc.tar.gz
gnupg-ea41f5b4c19dade3a89d486ce1c2530ac11226cc.zip
Fix faulty gcc warnings
-rw-r--r--g10/ChangeLog5
-rw-r--r--g10/armor.c11
-rw-r--r--sm/ChangeLog5
-rw-r--r--sm/base64.c9
-rw-r--r--tools/no-libgcrypt.c1
5 files changed, 20 insertions, 11 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 65e97a9a4..cdacc6fdb 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-03 Werner Koch <[email protected]>
+
+ * armor.c (armor_filter): Don't take a copy of radbuf while
+ writing the checksum. This works around a faulty gcc 4.4 warning.
+
2011-03-02 Werner Koch <[email protected]>
* call-agent.c (agent_scd_pksign, agent_scd_pkdecrypt)
diff --git a/g10/armor.c b/g10/armor.c
index 3948916fb..43ebb2e78 100644
--- a/g10/armor.c
+++ b/g10/armor.c
@@ -1182,21 +1182,20 @@ armor_filter( void *opaque, int control,
crc = afx->crc;
idx = afx->idx;
idx2 = afx->idx2;
- for(i=0; i < idx; i++ )
- radbuf[i] = afx->radbuf[i];
if( idx ) {
- c = bintoasc[(*radbuf>>2)&077];
+ c = bintoasc[(afx->radbuf[0]>>2)&077];
iobuf_put(a, c);
if( idx == 1 ) {
- c = bintoasc[((*radbuf << 4) & 060) & 077];
+ c = bintoasc[((afx->radbuf[0] << 4) & 060) & 077];
iobuf_put(a, c);
iobuf_put(a, '=');
iobuf_put(a, '=');
}
else { /* 2 */
- c = bintoasc[(((*radbuf<<4)&060)|((radbuf[1]>>4)&017))&077];
+ c = bintoasc[(((afx->radbuf[0]<<4)&060)
+ |((afx->radbuf[1]>>4)&017))&077];
iobuf_put(a, c);
- c = bintoasc[((radbuf[1] << 2) & 074) & 077];
+ c = bintoasc[((afx->radbuf[1] << 2) & 074) & 077];
iobuf_put(a, c);
iobuf_put(a, '=');
}
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)
diff --git a/tools/no-libgcrypt.c b/tools/no-libgcrypt.c
index 496757647..9e5256646 100644
--- a/tools/no-libgcrypt.c
+++ b/tools/no-libgcrypt.c
@@ -157,5 +157,6 @@ gcry_create_nonce (void *buffer, size_t length)
const char *
gcry_cipher_algo_name (int algo)
{
+ (void)algo;
return "?";
}