Hello,

It looks to me like there is a memory leak in grub_command_find:

grub_command_t
grub_command_find (char *cmdline)
{
...

again:
  
  for (cmd = grub_command_list; cmd; cmd = cmd->next)
    if (grub_strcmp (cmdline, cmd->name) == 0)
      break;

  if (! cmd)
    grub_error (GRUB_ERR_UNKNOWN_COMMAND, "unknown command `%s'", cmdline);
  else if (cmd->flags & GRUB_COMMAND_FLAG_NOT_LOADED)
    {
      /* Automatically load the command.  */
      if (count == 0)
        {
          grub_dl_t mod;
          char *module_name;

          module_name = grub_strdup (cmd->module_name);
          if (module_name)
            {
              mod = grub_dl_load (module_name);
              if (mod)
                {
                  grub_dl_ref (mod);
                  count++;
                  goto again;
                }

              grub_free (module_name);  <<<< never reached because of goto
            }
        }
...



-- 
Mike Small
[EMAIL PROTECTED]


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to