diff options
author | wosch <wosch@FreeBSD.org> | 1997-09-28 10:41:40 +0000 |
---|---|---|
committer | wosch <wosch@FreeBSD.org> | 1997-09-28 10:41:40 +0000 |
commit | 043e6810da2e67f351c2efe635516828d71fa2a4 (patch) | |
tree | b216732052facd46b67817a18f5498d7c0e920c8 | |
parent | 97238e083413308273e149d36e3ddabb73e08881 (diff) | |
download | FreeBSD-src-043e6810da2e67f351c2efe635516828d71fa2a4.zip FreeBSD-src-043e6810da2e67f351c2efe635516828d71fa2a4.tar.gz |
Endless loop.
$ touch from to
$ echo -n loop | mv -i from to
overwrite to?
^C
-rw-r--r-- | bin/mv/mv.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/bin/mv/mv.c b/bin/mv/mv.c index ea6db6d..96d62a1 100644 --- a/bin/mv/mv.c +++ b/bin/mv/mv.c @@ -33,7 +33,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: mv.c,v 1.12 1997/03/08 16:05:44 guido Exp $ + * $Id: mv.c,v 1.13 1997/03/28 15:24:26 imp Exp $ */ #ifndef lint @@ -142,7 +142,7 @@ do_move(from, to) char *from, *to; { struct stat sb; - int ask, ch; + int ask, ch, first; char modep[15]; /* @@ -171,9 +171,10 @@ do_move(from, to) ask = 1; } if (ask) { - if ((ch = getchar()) != EOF && ch != '\n') - while (getchar() != '\n'); - if (ch != 'y' && ch != 'Y') + first = ch = getchar(); + while (ch != '\n' && ch != EOF) + ch = getchar(); + if (first != 'y' && first != 'Y') return (0); } } |