fdiro = grub_malloc (sz);
if (!fdiro)
{
- grub_print_error ();
return 0;
}
err = grub_xfs_read_inode (ctx->diro->data, ino, &fdiro->inode);
if (err)
{
- grub_print_error ();
grub_free (fdiro);
return 0;
}
/* Synthesize the direntries for `.' and `..'. */
if (iterate_dir_call_hook (diro->ino, ".", &ctx))
return 1;
+ else if (grub_errno)
+ return 0;
if (iterate_dir_call_hook (parent, "..", &ctx))
return 1;
+ else if (grub_errno)
+ return 0;
for (i = 0; i < head->count &&
(grub_uint8_t *) de < ((grub_uint8_t *) dir + grub_xfs_fshelp_size (dir->data)); i++)
}
de->name[de->len] = c;
+ if (grub_errno)
+ return 0;
+
de = grub_xfs_inline_next_de(dir->data, head, de);
}
break;
grub_free (dirblock);
return 1;
}
+ else if (grub_errno)
+ {
+ grub_free (dirblock);
+ return 0;
+ }
/*
* The expected number of directory entries is only tracked for the