Date: Sat, 18 Mar 2000 14:52:53 -0500 (EST) From: Jonathan Chen <jon@spock.org> To: FreeBSD-gnats-submit@freebsd.org Subject: bin/17476: uudecode -i (no overwrite) flag bogus Message-ID: <200003181952.OAA46459@spock.org>
next in thread | raw e-mail | index | archive | help
>Number: 17476 >Category: bin >Synopsis: uudecode -i (no overwrite) flag bogus >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Mar 18 12:00:01 PST 2000 >Closed-Date: >Last-Modified: >Originator: Jonathan Chen >Release: All releases since 2.2 >Organization: >Environment: >Description: The -i flag in uudecode has no effect except for printing "not overwritten". It overwrites the file anyway. This problem existed since the introduction of the -i flag in uudecode. >How-To-Repeat: uudecode foo < somefile > foo.uu touch foo uudecode -i foo.uu (uudecode will now tell you "foo" was not overwritten, but overwrite it anyway) >Fix: recommend the following patch: (should work on -STABLE and -CURRENT) --- uudecode.c~ Sat Mar 18 14:50:48 2000 +++ uudecode.c Sat Mar 18 14:51:16 2000 @@ -197,9 +197,10 @@ ; /* print to stdout */ else { - if (iflag && !access(buf, F_OK)) + if (iflag && !access(buf, F_OK)) { (void)fprintf(stderr, "not overwritten: %s\n", buf); - if (!freopen(buf, "w", stdout) || + freopen("/dev/null", "w", stdout); + } else if (!freopen(buf, "w", stdout) || fchmod(fileno(stdout), mode&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?200003181952.OAA46459>