aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/ChangeLog7
-rw-r--r--g10/armor.c5
-rw-r--r--g10/card-util.c2
-rw-r--r--g10/plaintext.c10
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);