unix: do not close stdin in grub_passwd_get

This makes it impossible to read from stdin without controlling tty:

10:/mnt # echo -e passwd\\npasswd | setsid ./grub-mkpasswd-pbkdf2
Enter password:
Reenter password: ./grub-mkpasswd-pbkdf2: error: failure to read password.
10:/mnt
This commit is contained in:
Andrei Borzenkov 2015-11-18 22:23:58 +03:00
parent 50d6f38feb
commit 6a46cbcc5c

View file

@ -54,7 +54,8 @@ grub_password_get (char buf[], unsigned buf_size)
grub_memset (buf, 0, buf_size);
if (!fgets (buf, buf_size, stdin))
{
fclose (in);
if (in != stdin)
fclose (in);
return 0;
}
ptr = buf + strlen (buf) - 1;
@ -67,7 +68,8 @@ grub_password_get (char buf[], unsigned buf_size)
grub_xputs ("\n");
grub_refresh ();
fclose (in);
if (in != stdin)
fclose (in);
return 1;
}