diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 7 | ||||
-rw-r--r-- | g10/armor.c | 5 | ||||
-rw-r--r-- | g10/card-util.c | 2 | ||||
-rw-r--r-- | g10/plaintext.c | 10 |
4 files changed, 21 insertions, 3 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 2014ec748..3e39d5b33 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,10 @@ +2010-05-12 Werner Koch <[email protected]> + + * armor.c (radix64_read): Extended 2006-04-28 fix to fix bug#1179. + + * plaintext.c (handle_plaintext): Check return code of fflush. + Fixes bug#1207. + 2010-05-07 Werner Koch <[email protected]> * import.c (fix_bad_direct_key_sigs): New. diff --git a/g10/armor.c b/g10/armor.c index 19cca3fd4..a6195fc3d 100644 --- a/g10/armor.c +++ b/g10/armor.c @@ -798,8 +798,9 @@ radix64_read( armor_filter_context_t *afx, IOBUF a, size_t *retn, goto again; } } - else if(n==0) - onlypad=1; + + if (!n) + onlypad = 1; if( idx == 1 ) buf[n++] = val; diff --git a/g10/card-util.c b/g10/card-util.c index dd255a0d9..4b537bcb3 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1360,6 +1360,8 @@ generate_card_keys (void) { char *answer; + /* FIXME: Should be something like cpr_get_bool so that a status + GET_BOOL will be emitted. */ answer = cpr_get ("cardedit.genkeys.backup_enc", _("Make off-card backup of encryption key? (Y/n) ")); diff --git a/g10/plaintext.c b/g10/plaintext.c index 85f7165bd..1d4c8c793 100644 --- a/g10/plaintext.c +++ b/g10/plaintext.c @@ -448,7 +448,15 @@ handle_plaintext (PKT_plaintext * pt, md_filter_context_t * mfx, /* Make sure that stdout gets flushed after the plaintext has been handled. This is for extra security as we do a flush anyway before checking the signature. */ - fflush (stdout); + if (fflush (stdout)) + { + /* We need to check the return code to detect errors like disk + full for short plaintexts. See bug#1207. Checking return + values is a good idea in any case. */ + if (!rc) + rc = gpg_error_from_syserror (); + log_error ("error flushing `%s': %s\n", "[stdout]", strerror (errno)); + } if (fp && fp != stdout && fp != opt.outfp) fclose (fp); |