aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/ChangeLog8
-rw-r--r--g10/encode.c6
-rw-r--r--g10/progress.c2
-rw-r--r--g10/sign.c5
4 files changed, 16 insertions, 5 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index adccbcc21..9f8c08add 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,11 @@
+2003-05-21 Werner Koch <[email protected]>
+
+ * sign.c (write_plaintext_packet)
+ * progress.c (handle_progress)
+ * 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-20 David Shaw <[email protected]>
* keylist.c (list_keyblock_print): Don't dump attribs for
diff --git a/g10/encode.c b/g10/encode.c
index 1d7f2bd6a..a5b083548 100644
--- a/g10/encode.c
+++ b/g10/encode.c
@@ -294,7 +294,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)) )
@@ -525,7 +526,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)) )
diff --git a/g10/progress.c b/g10/progress.c
index 4d873eea9..1f3b75692 100644
--- a/g10/progress.c
+++ b/g10/progress.c
@@ -105,7 +105,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;
diff --git a/g10/sign.c b/g10/sign.c
index 4f676ff0a..acec66cb7 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -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.
*
@@ -460,7 +461,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);