1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-31 11:41:32 +01:00

* plaintext.c (handle_plaintext): Make sure that the stdout flush

succeeded, so we can't lose data when using gpg in a pipeline.  Fixes
bug #1207.
This commit is contained in:
David Shaw 2010-03-26 16:57:09 +00:00
parent 9529d72b2c
commit 5bcd4f613b
2 changed files with 18 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2010-03-26 David Shaw <dshaw@jabberwocky.com>
* plaintext.c (handle_plaintext): Make sure that the stdout flush
succeeded, so we can't lose data when using gpg in a pipeline.
Fixes bug #1207.
2010-02-17 Werner Koch <wk@g10code.com>
* keygen.c (ask_user_id): Avoid infinite loop in case of invalid
@ -13615,7 +13621,7 @@ Thu Feb 12 22:24:42 1998 Werner Koch (wk@frodo)
Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007, 2008, 2009 Free Software Foundation, Inc.
2007, 2008, 2009, 2010 Free Software Foundation, Inc.
This file is free software; as a special exception the author gives
unlimited permission to copy and/or distribute it, with or without

View File

@ -1,6 +1,6 @@
/* plaintext.c - process plaintext packets
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
* 2006 Free Software Foundation, Inc.
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
* 2007, 2010 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -392,7 +392,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 check whether this fflush succeeded since fp might have
been stdout piping to a file. The fflush could fail if the
file cannot be written (disk full, etc). See bug 1207 for
more. */
log_error("Error flushing plaintext: %s\n",strerror(errno));
rc=G10ERR_WRITE_FILE;
}
if( fp && fp != stdout )
fclose(fp);