Date: Tue, 3 Sep 2002 14:47:33 +0900 (JST) From: Kimura Fuyuki <fuyuki@hadaly.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: bin/42356: uudecode -o doesn't work if piped Message-ID: <20020903054733.24DAC5693@hadaly.dyndns.org>
next in thread | raw e-mail | index | archive | help
>Number: 42356
>Category: bin
>Synopsis: uudecode -o doesn't work if piped
>Confidential: no
>Severity: serious
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Sep 02 22:50:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Kimura Fuyuki
>Release: FreeBSD 4.6.2-RELEASE i386
>Organization:
>Environment:
System: FreeBSD hadaly.dyndns.org 4.6.2-RELEASE FreeBSD 4.6.2-RELEASE #17: Wed Aug 14 17:19:17 JST 2002 root@hadaly.dyndns.org:/sack/tmp/obj/pub/src/sys/NS i386
>Description:
uudecode -o doesn't work if the output is piped to other programs.
>How-To-Repeat:
$ uudecode -o /tmp/a.tgz </tmp/a.uue
$ tar tvzf /tmp/a.tgz
drwxr-xr-x user/user 0 Nov 13 13:10 2001 dir/
-rw-r--r-- user/user 3 Nov 13 13:10 2001 dir/file
drwxr-xr-x user/user 0 Nov 13 13:10 2001 dir/RCS/
-r--r--r-- user/user 307 Nov 13 13:10 2001 dir/RCS/file,v
$ uudecode -o /dev/stdout </tmp/a.uue | tar xvzf -
uudecode: /dev/stdout: stdin: Invalid argument
gzip: stdin: unexpected end of file
tar: child returned status 1
>Fix:
This patch could be a solution, but doesn't solve the below though I
don't think it's useful.
$ uudecode -o /tmp/a.tgz </tmp/*.uue | tar xvzf -
Index: uudecode.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/uudecode/uudecode.c,v
retrieving revision 1.27
diff -u -r1.27 uudecode.c
--- uudecode.c 19 May 2002 11:22:52 -0000 1.27
+++ uudecode.c 3 Sep 2002 05:25:08 -0000
@@ -96,6 +96,8 @@
oflag = 1; /* output to the specified file */
sflag = 1; /* do not strip pathnames for output */
outfile = optarg; /* set the output filename */
+ if (strcmp(outfile, "/dev/stdout") == 0)
+ pflag = 1;
break;
case 'p':
if (oflag)
By the way, I don't understand the mean of the following lines. Are they
necessary? If they can be zapped, it could be a better solution.
} else if (!freopen(buf, "w", stdout) ||
fchmod(fileno(stdout), getmode(mode_handle, 0) & 0666)) {
warn("%s: %s", buf, filename);
return(1);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020903054733.24DAC5693>
