* grub-core/fs/bfs.c: MAcroify and add some necessary sanity checks.
This commit is contained in:
parent
c4a1628f67
commit
785ab8c760
2 changed files with 29 additions and 12 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
2011-10-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/fs/bfs.c: MAcroify and add some necessary sanity checks.
|
||||||
|
|
||||||
2011-10-30 Vladimir Serbinenko <phcoder@gmail.com>
|
2011-10-30 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/fs/bfs.c: Run indent.
|
* grub-core/fs/bfs.c: Run indent.
|
||||||
|
|
|
@ -146,7 +146,8 @@ read_extent (grub_disk_t disk,
|
||||||
return grub_disk_read (disk, ((grub_bfs_to_cpu32 (in->ag)
|
return grub_disk_read (disk, ((grub_bfs_to_cpu32 (in->ag)
|
||||||
<< grub_bfs_to_cpu32 (sb->log2_ag_size))
|
<< grub_bfs_to_cpu32 (sb->log2_ag_size))
|
||||||
+ grub_bfs_to_cpu16 (in->start) + off)
|
+ grub_bfs_to_cpu16 (in->start) + off)
|
||||||
<< (grub_bfs_to_cpu32 (sb->log2_bsize) - 9), byteoff,
|
<< (grub_bfs_to_cpu32 (sb->log2_bsize)
|
||||||
|
- GRUB_DISK_SECTOR_BITS), byteoff,
|
||||||
len, buf);
|
len, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,7 +384,8 @@ iterate_in_b_tree (grub_disk_t disk,
|
||||||
+ ALIGN_UP (sizeof (node) +
|
+ ALIGN_UP (sizeof (node) +
|
||||||
grub_bfs_to_cpu16 (node.total_key_len),
|
grub_bfs_to_cpu16 (node.total_key_len),
|
||||||
8) +
|
8) +
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 2,
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint64_t),
|
||||||
&key_value, sizeof (grub_uint64_t), 0);
|
&key_value, sizeof (grub_uint64_t), 0);
|
||||||
if (err)
|
if (err)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -415,7 +417,8 @@ iterate_in_b_tree (grub_disk_t disk,
|
||||||
grub_bfs_to_cpu16 (node.
|
grub_bfs_to_cpu16 (node.
|
||||||
total_key_len),
|
total_key_len),
|
||||||
8), keylen_idx,
|
8), keylen_idx,
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 2, 0);
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint16_t), 0);
|
||||||
if (err)
|
if (err)
|
||||||
return 0;
|
return 0;
|
||||||
err = read_bfs_file (disk, sb, ino, node_off
|
err = read_bfs_file (disk, sb, ino, node_off
|
||||||
|
@ -423,9 +426,11 @@ iterate_in_b_tree (grub_disk_t disk,
|
||||||
grub_bfs_to_cpu16 (node.
|
grub_bfs_to_cpu16 (node.
|
||||||
total_key_len),
|
total_key_len),
|
||||||
8) +
|
8) +
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 2,
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint16_t),
|
||||||
key_values,
|
key_values,
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 8, 0);
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint64_t), 0);
|
||||||
if (err)
|
if (err)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -434,6 +439,8 @@ iterate_in_b_tree (grub_disk_t disk,
|
||||||
char c;
|
char c;
|
||||||
start = end;
|
start = end;
|
||||||
end = grub_bfs_to_cpu16 (keylen_idx[i]);
|
end = grub_bfs_to_cpu16 (keylen_idx[i]);
|
||||||
|
if (grub_bfs_to_cpu16 (node.total_key_len) <= end)
|
||||||
|
end = grub_bfs_to_cpu16 (node.total_key_len);
|
||||||
c = key_data[end];
|
c = key_data[end];
|
||||||
key_data[end] = 0;
|
key_data[end] = 0;
|
||||||
if (hook (key_data + start, grub_bfs_to_cpu64 (key_values[i])))
|
if (hook (key_data + start, grub_bfs_to_cpu64 (key_values[i])))
|
||||||
|
@ -490,7 +497,8 @@ find_in_b_tree (grub_disk_t disk,
|
||||||
ALIGN_UP (sizeof (node) +
|
ALIGN_UP (sizeof (node) +
|
||||||
grub_bfs_to_cpu16 (node.total_key_len),
|
grub_bfs_to_cpu16 (node.total_key_len),
|
||||||
8), keylen_idx,
|
8), keylen_idx,
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 2, 0);
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint16_t), 0);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
err = read_bfs_file (disk, sb, ino, node_off
|
err = read_bfs_file (disk, sb, ino, node_off
|
||||||
|
@ -498,9 +506,11 @@ find_in_b_tree (grub_disk_t disk,
|
||||||
grub_bfs_to_cpu16 (node.
|
grub_bfs_to_cpu16 (node.
|
||||||
total_key_len),
|
total_key_len),
|
||||||
8) +
|
8) +
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 2,
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint16_t),
|
||||||
key_values,
|
key_values,
|
||||||
grub_bfs_to_cpu16 (node.count_keys) * 8, 0);
|
grub_bfs_to_cpu16 (node.count_keys)
|
||||||
|
* sizeof (grub_uint64_t), 0);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
@ -561,7 +571,8 @@ hop_level (grub_disk_t disk,
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
return grub_disk_read (disk, res
|
return grub_disk_read (disk, res
|
||||||
<< (grub_bfs_to_cpu32 (sb->log2_bsize) - 9), 0,
|
<< (grub_bfs_to_cpu32 (sb->log2_bsize)
|
||||||
|
- GRUB_DISK_SECTOR_BITS), 0,
|
||||||
grub_bfs_to_cpu32 (sb->bsize), (char *) ino);
|
grub_bfs_to_cpu32 (sb->bsize), (char *) ino);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -718,7 +729,8 @@ grub_bfs_dir (grub_device_t device, const char *path,
|
||||||
struct grub_dirhook_info info;
|
struct grub_dirhook_info info;
|
||||||
|
|
||||||
err2 = grub_disk_read (device->disk, value
|
err2 = grub_disk_read (device->disk, value
|
||||||
<< (grub_bfs_to_cpu32 (sb.log2_bsize) - 9), 0,
|
<< (grub_bfs_to_cpu32 (sb.log2_bsize)
|
||||||
|
- GRUB_DISK_SECTOR_BITS), 0,
|
||||||
grub_bfs_to_cpu32 (sb.bsize), (char *) ino.raw);
|
grub_bfs_to_cpu32 (sb.bsize), (char *) ino.raw);
|
||||||
if (err2)
|
if (err2)
|
||||||
{
|
{
|
||||||
|
@ -877,7 +889,8 @@ read_bfs_attr (grub_disk_t disk,
|
||||||
if (err)
|
if (err)
|
||||||
return -1;
|
return -1;
|
||||||
grub_disk_read (disk, res
|
grub_disk_read (disk, res
|
||||||
<< (grub_bfs_to_cpu32 (sb->log2_bsize) - 9), 0,
|
<< (grub_bfs_to_cpu32 (sb->log2_bsize)
|
||||||
|
- GRUB_DISK_SECTOR_BITS), 0,
|
||||||
grub_bfs_to_cpu32 (sb->bsize), (char *) &ino2);
|
grub_bfs_to_cpu32 (sb->bsize), (char *) &ino2);
|
||||||
read = grub_bfs_to_cpu64 (ino2.ino.size);
|
read = grub_bfs_to_cpu64 (ino2.ino.size);
|
||||||
if (read > len)
|
if (read > len)
|
||||||
|
@ -916,7 +929,7 @@ grub_bfs_uuid (grub_device_t device, char **uuid)
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
if (read_bfs_attr (device->disk, &sb, &ino.ino, "be:volume_id",
|
if (read_bfs_attr (device->disk, &sb, &ino.ino, "be:volume_id",
|
||||||
&vid, 8) == 8)
|
&vid, sizeof (vid)) == sizeof (vid))
|
||||||
*uuid =
|
*uuid =
|
||||||
grub_xasprintf ("%016" PRIxGRUB_UINT64_T, grub_bfs_to_cpu64 (vid));
|
grub_xasprintf ("%016" PRIxGRUB_UINT64_T, grub_bfs_to_cpu64 (vid));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue