grub2/0305-zfs-mzap_lookup-Fix-argument-types.patch
Peter Jones 8c6b1ac71e Reconcile with upstream once again.
Also include some minor fixes for gcc 5.1.1

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-07-22 09:46:32 -04:00

43 lines
1.3 KiB
Diff

From 87a04adb6541c4bf169644bb2f84036a7c8558dd Mon Sep 17 00:00:00 2001
From: Vladimir Serbinenko <phcoder@gmail.com>
Date: Sat, 21 Feb 2015 16:22:01 +0100
Subject: [PATCH 305/506] zfs/mzap_lookup: Fix argument types
---
grub-core/fs/zfs/zfs.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c
index 057b471..0cbb84b 100644
--- a/grub-core/fs/zfs/zfs.c
+++ b/grub-core/fs/zfs/zfs.c
@@ -2013,12 +2013,14 @@ dmu_read (dnode_end_t * dn, grub_uint64_t blkid, void **buf,
*/
static grub_err_t
mzap_lookup (mzap_phys_t * zapobj, grub_zfs_endian_t endian,
- int objsize, const char *name, grub_uint64_t * value,
+ grub_uint16_t objsize, const char *name, grub_uint64_t * value,
int case_insensitive)
{
- int i, chunks;
+ grub_uint16_t i, chunks;
mzap_ent_phys_t *mzap_ent = zapobj->mz_chunk;
+ if (objsize < MZAP_ENT_LEN)
+ return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("file `%s' not found"), name);
chunks = objsize / MZAP_ENT_LEN - 1;
for (i = 0; i < chunks; i++)
{
@@ -2426,7 +2428,7 @@ zap_lookup (dnode_end_t * zap_dnode, const char *name, grub_uint64_t *val,
struct grub_zfs_data *data, int case_insensitive)
{
grub_uint64_t block_type;
- int size;
+ grub_uint16_t size;
void *zapbuf;
grub_err_t err;
grub_zfs_endian_t endian;
--
2.4.3