From: Mark Johnston Date: Tue, 1 Sep 2020 15:14:13 +0000 (+0000) Subject: pw: Fix terminal handling when setting a group password. X-Git-Url: https://git.cameronkatri.com/pw-darwin.git/commitdiff_plain/abe4cfb72aae79bc01f624c9b75e5e2c048e17be pw: Fix terminal handling when setting a group password. Reported by: Coverity MFC after: 1 week Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. --- diff --git a/pw/pw_group.c b/pw/pw_group.c index dd65062..a294d4e 100644 --- a/pw/pw_group.c +++ b/pw/pw_group.c @@ -66,13 +66,18 @@ grp_set_passwd(struct group *grp, bool update, int fd, bool precrypted) } if ((istty = isatty(fd))) { - n = t; - /* Disable echo */ - n.c_lflag &= ~(ECHO); - tcsetattr(fd, TCSANOW, &n); - printf("%sassword for group %s:", update ? "New p" : "P", - grp->gr_name); - fflush(stdout); + if (tcgetattr(fd, &t) == -1) + istty = 0; + else { + n = t; + /* Disable echo */ + n.c_lflag &= ~(ECHO); + tcsetattr(fd, TCSANOW, &n); + printf("%sassword for group %s:", + update ? "New p" : "P", + grp->gr_name); + fflush(stdout); + } } b = read(fd, line, sizeof(line) - 1); if (istty) { /* Restore state */