* progress.c (handle_progress)
authorWerner Koch <wk@gnupg.org>
Wed, 21 May 2003 08:48:26 +0000 (08:48 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 21 May 2003 08:48:26 +0000 (08:48 +0000)
* sign.c (write_plaintext_packet)
* encode.c (encode_simple,encode_crypt): Make sure that a filename
of "-" is considered to be stdin so that iobuf_get_filelength
won't get called.  This fixes bug 156 reported by Gregery Barton.

g10/ChangeLog
g10/encode.c
g10/progress.c
g10/sign.c

index a04cb88..57dd35c 100644 (file)
@@ -1,3 +1,11 @@
+2003-05-21  Werner Koch  <wk@gnupg.org>
+
+       * progress.c (handle_progress)
+       * sign.c (write_plaintext_packet)
+       * encode.c (encode_simple,encode_crypt): Make sure that a filename
+       of "-" is considered to be stdin so that iobuf_get_filelength
+       won't get called.  This fixes bug 156 reported by Gregery Barton.
+
 2003-05-02  David Shaw  <dshaw@jabberwocky.com>
 
        * packet.h, build-packet.c (build_sig_subpkt), export.c
index 8a07666..6468ccf 100644 (file)
@@ -1,5 +1,6 @@
 /* encode.c - encode data
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002,
+ *               2003 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -291,7 +292,8 @@ encode_simple( const char *filename, int mode, int compat )
        either partial length or fixed length with the new style
        messages. */
 
-    if( filename && !opt.textmode ) {
+    if (filename && *filename && !(*filename == '-' && !filename[1])
+        && !opt.textmode ) {
         off_t tmpsize;
 
        if ( !(tmpsize = iobuf_get_filelength(inp)) )
@@ -522,7 +524,8 @@ encode_crypt( const char *filename, STRLIST remusr )
        }
     }
 
-    if( filename && !opt.textmode ) {
+    if (filename && *filename && !(*filename == '-' && !filename[1])
+        && !opt.textmode ) {
         off_t tmpsize;
 
        if ( !(tmpsize = iobuf_get_filelength(inp)) )
index 0c6f494..36b293a 100644 (file)
@@ -93,7 +93,7 @@ handle_progress (progress_filter_context_t *pfx, IOBUF inp, const char *name)
   if (!is_status_enabled ())
     return;
 
-  if (name)
+  if (name && *name && !(*name == '-' && !name[1]))
     filesize = iobuf_get_filelength (inp);
   else if (opt.set_filesize)
     filesize = opt.set_filesize;
index 8526320..6e65660 100644 (file)
@@ -1,5 +1,6 @@
 /* sign.c - sign data
- * Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2002,
+ *               2003 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
  *
@@ -483,7 +484,7 @@ write_plaintext_packet (IOBUF out, IOBUF inp, const char *fname, int ptmode)
     }
 
     /* try to calculate the length of the data */
-    if (fname) {
+    if (fname && *fname && !(*fname=='-' && !fname[1])) {
         if( !(filesize = iobuf_get_filelength(inp)) )
             log_info (_("WARNING: `%s' is an empty file\n"), fname);