Colin Watson
fc524edf65
Remove nested functions from filesystem directory iterators.
...
* include/grub/fs.h (grub_fs_dir_hook_t): New type.
(struct grub_fs.dir): Add hook_data argument.
Update all implementations and callers.
2013-01-21 01:33:46 +00:00
Colin Watson
25239370fd
Remove nested functions from device iterators.
...
* include/grub/arc/arc.h (grub_arc_iterate_devs_hook_t): New type.
(grub_arc_iterate_devs): Add hook_data argument.
* include/grub/ata.h (grub_ata_dev_iterate_hook_t): New type.
(struct grub_ata_dev.iterate): Add hook_data argument.
* include/grub/device.h (grub_device_iterate_hook_t): New type.
(grub_device_iterate): Add hook_data argument.
* include/grub/disk.h (grub_disk_dev_iterate_hook_t): New type.
(struct grub_disk_dev.iterate): Add hook_data argument.
(grub_disk_dev_iterate): Likewise.
* include/grub/gpt_partition.h (grub_gpt_partition_map_iterate):
Likewise.
* include/grub/msdos_partition.h (grub_partition_msdos_iterate):
Likewise.
* include/grub/partition.h (grub_partition_iterate_hook_t): New
type.
(struct grub_partition_map.iterate): Add hook_data argument.
(grub_partition_iterate): Likewise.
* include/grub/scsi.h (grub_scsi_dev_iterate_hook_t): New type.
(struct grub_scsi_dev.iterate): Add hook_data argument.
Update all callers.
2013-01-20 15:52:15 +00:00
Vladimir 'phcoder' Serbinenko
535714bdcf
* grub-core/fs/ntfs.c: Ue more appropriate types.
...
* grub-core/fs/ntfscomp.c: Likewise.
* include/grub/ntfs.h: Likewise.
2013-01-11 07:41:05 +01:00
Vladimir 'phcoder' Serbinenko
c6f1e92f0b
* grub-core/fs/minix.c (grub_minix_read_file): Simplify arithmetics.
2013-01-07 11:27:18 +01:00
Vladimir 'phcoder' Serbinenko
f797ec85a0
* grub-core/fs/ext2.c (grub_ext2_read_block): Use shifts rather than
...
divisions.
2013-01-05 18:37:34 +01:00
Vladimir 'phcoder' Serbinenko
033d0b4b0b
* grub-core/fs/ntfs.c: Eliminate useless divisions in favor of shifts.
...
* grub-core/fs/ntfscomp.c: Likewise.
* include/grub/ntfs.h (grub_ntfs_data): Replace spc with log_spc.
(grub_ntfs_comp): Likewise.
2013-01-05 17:36:04 +01:00
Vladimir 'phcoder' Serbinenko
21d1b9a029
* grub-core/fs/nilfs2.c (-grub_nilfs2_palloc_groups_per_desc_block):
...
Rename to ...
(grub_nilfs2_palloc_log_groups_per_desc_block): ... this. Return log
of groups_per_block. All users updated.
2013-01-05 16:53:04 +01:00
Vladimir 'phcoder' Serbinenko
dadddb7665
* grub-core/fs/iso9660.c (grub_iso9660_susp_iterate): Avoid hang if
...
entry->len = 0.
2013-01-03 21:27:00 +01:00
Vladimir 'phcoder' Serbinenko
cc1ce5f9b4
* grub-core/fs/ufs.c (grub_ufs_dir): Stop if direntlen is 0 to avoid
...
infinite loop on corrupted FS.
2012-12-10 09:22:40 +01:00
Vladimir 'phcoder' Serbinenko
e77a16ca02
Fix big-endian mtime.
...
* grub-core/fs/ufs.c (grub_ufs_inode): Split improperly attached
together sec and usec.
(grub_ufs_dir): Use correct byteswapping for UFS time.
2012-12-08 21:14:08 +01:00
Vladimir 'phcoder' Serbinenko
d9c48c7b7c
Support big-endian UFS1.
...
* Makefile.util.def (libgrubmods): Add ufs_be.c
* grub-core/Makefile.core.def (ufs1_be): New module.
* grub-core/fs/ufs_be.c: New file.
* grub-core/fs/ufs.c: Declare grub_ufs_to_le* and use them throughout
the file.
2012-12-08 20:56:58 +01:00
Vladimir 'phcoder' Serbinenko
b78c312722
* grub-core/fs/affs.c (grub_affs_mount): Support AFFS bootblock in
...
sector 1.
2012-09-26 09:33:41 +02:00
Vladimir 'phcoder' Serbinenko
a40994852d
* grub-core/fs/xfs.c (grub_xfs_read_block): Make keys a const pointer.
2012-09-05 08:45:07 +02:00
Vladimir 'phcoder' Serbinenko
073b57bb8e
* grub-core/fs/ext2.c: Experimental support for 64-bit.
2012-07-02 11:28:42 +02:00
Vladimir 'phcoder' Serbinenko
c59bdff709
* grub-core/fs/fshelp.c (grub_fshelp_find_file): Don't free oldnode if
...
it's equal to currnode. This can happen with "" symlink.
2012-06-27 19:37:40 +02:00
Vladimir 'phcoder' Serbinenko
9f3fc8835f
Handle slash in HFS label.
...
* grub-core/fs/hfs.c (macroman_to_utf8): New argument slash_translate.
(grub_hfs_dir): Tanslate slash.
(grub_hfs_label): Don't translate slash.
2012-06-26 14:53:35 +02:00
Vladimir 'phcoder' Serbinenko
fb022c79ef
* grub-core/fs/fat.c (grub_fat_iterate_dir_next): Don't stop on a space
...
character but still remove trainling spaces.
(grub_fat_label): Ignore archive flag.
2012-06-25 17:47:52 +02:00
Vladimir 'phcoder' Serbinenko
918a25179c
Restructure FAT driver to avoid hook in label reading as it hits a
...
GCC bug.
* include/grub/err.h (grub_err_t): New enum value GRUB_ERR_EOF.
* grub-core/fs/fat.c (grub_fat_iterate_context): New struct.
(grub_fat_iterate_dir): Split into ...
(grub_fat_iterate_init): ... this, ...
(grub_fat_iterate_fini): ... this, ...
(grub_fat_iterate_dir_next): ... and this. All users updated.
2012-06-20 23:29:28 +02:00
Vladimir 'phcoder' Serbinenko
7de5e20af4
* grub-core/fs/hfs.c (grub_hfs_dir): Use memset instead of
...
initialisation to avoid __bzero reference.
2012-05-28 17:54:18 +02:00
Vladimir 'phcoder' Serbinenko
9da59c3275
* grub-core/fs/bfs.c (iterate_in_b_tree): Add missing NESTED_FUNC_ATTR.
...
(grub_bfs_dir): Likewise.
2012-05-27 15:31:54 +02:00
Vladimir 'phcoder' Serbinenko
20dd511c8c
Handle "." and ".." on squashfs.
...
* grub-core/fs/squash4.c (grub_fshelp_node): New field stsize.
Make inode numbers into stack.
(grub_squash_read_symlink): Use stack.
(grub_squash_iterate_dir): Use stack. Create "." and ".." nodes.
(make_root_node): Fill stack.
(grub_squash_open): Use stack.
2012-05-27 13:44:48 +02:00
Vladimir 'phcoder' Serbinenko
8b43f587ae
* grub-core/fs/jfs.c (grub_jfs_find_file): Handle "." and "..".
2012-05-27 01:03:26 +02:00
Vladimir 'phcoder' Serbinenko
80a3dc3fb4
* grub-core/fs/ntfs.c (list_file): Set mtime to correct value.
2012-05-27 01:00:46 +02:00
Vladimir 'phcoder' Serbinenko
47e297d4a4
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Don't skip "." and
...
"..".
2012-05-27 00:58:48 +02:00
Vladimir 'phcoder' Serbinenko
df042ccb21
* grub-core/fs/hfsplus.c (grub_hfsplus_catfile): New field parentid.
...
(grub_hfsplus_iterate_dir): Add "." and "..".
2012-05-27 00:56:55 +02:00
Vladimir 'phcoder' Serbinenko
fc977f485f
* grub-core/fs/cpio.c (canonicalize): Handle "..".
...
(grub_cpio_find_file) [MODE_USTAR]: Handle hardlinks.
2012-05-27 00:54:41 +02:00
Vladimir 'phcoder' Serbinenko
f3250e5f1f
* grub-core/fs/btrfs.c (GRUB_BTRFS_ITEM_TYPE_INODE_REF): New enum value.
...
(find_path): Handle "." and "..".
2012-05-27 00:47:37 +02:00
Vladimir 'phcoder' Serbinenko
fd8ed4c5c5
* grub-core/fs/affs.c (grub_affs_file): New field hardlink.
...
(GRUB_AFFS_FILETYPE_HARDLINK): New enum value.
(grub_affs_iterate_dir): Handle hardlinks.
2012-05-27 00:45:41 +02:00
Vladimir 'phcoder' Serbinenko
77ceedb634
Fix extent overflow comparator.
...
* grub-core/fs/hfsplus.c (grub_hfsplus_extkey_internal): Add type.
(grub_hfsplus_read_block): Set type.
(grub_hfsplus_cmp_extkey): Compare type.
2012-05-26 11:54:20 +02:00
Vladimir 'phcoder' Serbinenko
0a9aa0f6e1
* grub-core/fs/hfsplus.c (grub_hfsplus_label): Use found ptr rather
...
than 0.
2012-05-25 00:47:49 +02:00
Vladimir 'phcoder' Serbinenko
4cf6be1bd9
* grub-core/fs/squash4.c (grub_squash_read_data): Add missing byte-swap.
2012-05-22 08:38:17 +02:00
Vladimir 'phcoder' Serbinenko
937d1c44b1
* grub-core/fs/reiserfs.c (grub_reiserfs_iterate_dir): Fix size byteswap
...
with old reiserfs.
(grub_reiserfs_open): Don't free root.
2012-05-22 08:30:57 +02:00
Vladimir 'phcoder' Serbinenko
021d90ecac
* grub-core/fs/fshelp.c (grub_fshelp_find_file): Set currnode to 0
...
after freeing for safety.
2012-05-22 08:24:27 +02:00
Vladimir 'phcoder' Serbinenko
a4469c8806
* grub-core/fs/affs.c (grub_affs_mtime): Add missing grub_dl_ref.
2012-05-21 22:07:28 +02:00
Vladimir 'phcoder' Serbinenko
aa78f5c4e6
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Mark plain
...
ISO9660 names as case-insensitive, lowercase it and remove trailing dot.
2012-05-18 12:51:02 +02:00
Vladimir 'phcoder' Serbinenko
197626b569
* grub-core/fs/jfs.c (grub_jfs_data): New field caseins.
...
(grub_jfs_mount): Fill caseins.
(grub_jfs_find_file): Respect caseins.
2012-05-17 13:50:33 +02:00
Vladimir 'phcoder' Serbinenko
8ad3f28cec
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Don't strrchr
...
through UTF-16.
2012-05-17 13:47:23 +02:00
Vladimir 'phcoder' Serbinenko
0c6c324e90
* grub-core/fs/fat.c (grub_fat_find_dir): Fix error message.
...
New argument origpath. All users updated.
2012-05-17 13:45:00 +02:00
Vladimir 'phcoder' Serbinenko
c6666ba687
* grub-core/fs/ntfs.c (read_data): Prevent overflow.
...
(read_attr): Ensure that we read start of possibly compressed block.
2012-05-15 17:17:06 +02:00
Vladimir 'phcoder' Serbinenko
e28e5fe519
* include/grub/ntfs.h (grub_ntfs_comp_table_element): New struct.
...
(grub_ntfs_comp): Use grub_ntfs_comp_table_element for comp_table.
All users updated.
2012-05-15 17:09:14 +02:00
Vladimir 'phcoder' Serbinenko
def3df7520
* grub-core/fs/udf.c (read_string): Bail out on size=0.
...
(grub_udf_read_symlink): Handle read_string failure.
2012-05-13 20:18:33 +02:00
Vladimir 'phcoder' Serbinenko
c1ad82db74
Fix handling of UDF symlinks.
...
* grub-core/fs/udf.c (read_string): New argument outbuf.
All users updated.
(grub_ufs_read_symlink): Rename to ...
(grub_udf_read_symlink): ... this. All users updated.
Handle symlinks with more than one component.
2012-05-12 13:54:26 +02:00
Vladimir 'phcoder' Serbinenko
33eca6e005
* grub-core/fs/affs.c (grub_affs_read_symlink): Fix handling of long
...
symlinks. Replace leading colon with a slash.
2012-05-12 13:44:48 +02:00
Vladimir 'phcoder' Serbinenko
57f4a70b0d
* grub-core/fs/jfs.c (grub_jfs_find_file): Handle multiple slashes in
...
filename.
2012-05-12 13:41:02 +02:00
Vladimir 'phcoder' Serbinenko
38c8ee20ca
* grub-core/fs/bfs.c (find_in_b_tree) [MODE_AFS]: Fix handling of exact
...
match in inner node.
2012-05-12 13:35:58 +02:00
Vladimir 'phcoder' Serbinenko
2e57f28fc7
* grub-core/fs/bfs.c (mount): Improve filesystem detection reliability.
...
* grub-core/fs/ext2.c (grub_ext2_mount): Likewise.
* grub-core/fs/hfs.c (grub_hfs_mount): Likewise.
* grub-core/fs/hfsplus.c (grub_hfsplus_mount): Likewise.
* grub-core/fs/jfs.c (grub_jfs_mount): Likewise.
* grub-core/fs/minix.c (grub_minix_mount): Likewise.
* grub-core/fs/ntfs.c (grub_ntfs_mount): Likewise.
* grub-core/fs/romfs.c (grub_romfs_mount): Likewise.
* grub-core/fs/xfs.c (grub_xfs_mount): Likewise.
2012-05-12 13:31:05 +02:00
Vladimir 'phcoder' Serbinenko
690434e81d
* grub-core/fs/cpio.c (grub_cpio_find_file): Handle prefix.
...
(handle_symlink): Fix off-by-one error.
Canonicalize the target.
(grub_cpio_dir): Canonicalize the name.
Fix memory leak.
Set directory.
(grub_cpio_open): Canonicalize the name.
2012-05-10 23:38:01 +02:00
Vladimir 'phcoder' Serbinenko
742d2be63a
* grub-core/fs/iso9660.c (grub_iso9660_iterate_dir): Fix symlink
...
handling.
2012-05-10 23:35:03 +02:00
Vladimir 'phcoder' Serbinenko
3244fe96e7
* grub-core/fs/ufs.c (grub_ufs_find_file): Fix handling of double slash.
...
* grub-core/fs/minix.c (grub_minix_find_file): Likewise.
2012-05-10 23:33:44 +02:00
Vladimir 'phcoder' Serbinenko
6d521c5b41
Fix UFS1 big file support.
...
* grub-core/fs/ufs.c (INODE): Removed.
(INODE_SIZE): Always use 64-bit byte-swap since size field is always
64-bit.
(INODE_MODE): Simplify.
(grub_ufs_inode): Use uint64_t for size and not int64_t.
(grub_ufs_lookup_symlink): Don't use INODE.
2012-05-10 00:25:36 +02:00