# HG changeset patch # User Jonathan Perkin # Date 1358383690 0 # Node ID 62364715172df486bbfaf222ebe597bbf72d315b # Parent c1fa4cc16e1b5fc4ca23816139ee28b20aff2bb5 3927 yes(1) needs error handling to avoid spinning Reviewed by: Robert Mustacchi Reviewed by: Marcel Telka Reviewed by: Garrett D'Amore Reviewed by: Irek Szczesniak Approved by: Richard Lowe diff -r c1fa4cc16e1b -r 62364715172d usr/src/cmd/yes/yes.c --- a/usr/src/cmd/yes/yes.c Tue Aug 21 22:07:55 2012 +0000 +++ b/usr/src/cmd/yes/yes.c Thu Jan 17 00:48:10 2013 +0000 @@ -23,8 +23,9 @@ * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2013, Joyent, Inc. All rights reserved. + */ #include @@ -32,24 +33,24 @@ main(int argc, char **argv) { if (argc <= 1) { - for (;;) { - (void) putchar('y'); - (void) putchar('\n'); - } + while (puts("y") != EOF) + continue; } else { for (;;) { int i; for (i = 1; i < argc; i++) { if (i > 1) - (void) putchar(' '); - (void) fputs(argv[i], stdout); + if (putchar(' ') == EOF) + goto err; + if (fputs(argv[i], stdout) == EOF) + goto err; } - (void) putchar('\n'); + if (putchar('\n') == EOF) + goto err; } } -#if defined(lint) - /*NOTREACHED*/ - return (0); -#endif + +err: + return (1); }