util/grub-mkpasswd-pbkdf2: Simplify the main function implementation

Allocate memory if needed, while saving the corresponding release
operation, reducing the amount of code and code complexity.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Tianjia Zhang 2024-05-27 20:42:04 +08:00 committed by Daniel Kiper
parent fa36f63760
commit 0b4d01794a

View File

@ -133,34 +133,24 @@ main (int argc, char *argv[])
exit(1);
}
buf = xmalloc (arguments.buflen);
salt = xmalloc (arguments.saltlen);
printf ("%s", _("Enter password: "));
if (!grub_password_get (pass1, GRUB_AUTH_MAX_PASSLEN))
{
free (buf);
free (salt);
grub_util_error ("%s", _("failure to read password"));
}
printf ("%s", _("Reenter password: "));
if (!grub_password_get (pass2, GRUB_AUTH_MAX_PASSLEN))
{
free (buf);
free (salt);
grub_util_error ("%s", _("failure to read password"));
}
if (strcmp (pass1, pass2) != 0)
{
memset (pass1, 0, sizeof (pass1));
memset (pass2, 0, sizeof (pass2));
free (buf);
free (salt);
grub_util_error ("%s", _("passwords don't match"));
}
memset (pass2, 0, sizeof (pass2));
buf = xmalloc (arguments.buflen);
salt = xmalloc (arguments.saltlen);
if (grub_get_random (salt, arguments.saltlen))
{
memset (pass1, 0, sizeof (pass1));