Andrei Borzenkov
5370dcfdae
zfs: fix integer truncation in zap_lookup
...
Size after shift could exceed 16 bits; use grub_unit32_t for result.
Reported and tested by: Kostya Berger <bergerkos@yahoo.co.uk>
Closes: 44448
2015-05-14 07:50:33 +03:00
Jan Kara
a139188eb5
xfs: Convert inode numbers to cpu endianity immediately after reading
...
Currently XFS driver converted inode numbers to native endianity only
when using them to compute inode position. Although this works, it is
somewhat confusing. So convert inode numbers when reading them from disk
structures as every other field.
Signed-off-by: Jan Kara <jack@suse.cz>
2015-05-12 08:21:10 +03:00
Jan Kara
1570140f03
xfs: Fix termination loop for directory iteration
...
Directory iteration used wrong position (sizeof wrong structure) for
termination of iteration inside a directory block. Luckily the position
ended up being wrong by just 1 byte and directory entries are larger so
things worked out fine in practice. But fix the problem anyway.
Signed-off-by: Jan Kara <jack@suse.cz>
2015-05-11 14:48:14 +03:00
Andrei Borzenkov
6210b8e8f7
zfs: add missing NULL check and fix incorrect buffer overwrite
...
grub_memset should zero out padding after data end. It is not clear
why it is needed at all - ZFS block is at least 512 bytes and power
of two, so it is always multiple of 16 bytes. This grub_memset
apparently never did anything.
2015-05-03 18:57:32 +03:00
Toomas Soome
4a7ea4003b
zfs: com.delphix:embedded_data feature support
2015-05-03 18:45:40 +03:00
Toomas Soome
a1007c6af2
zfs: com.delphix:hole_birth feature support
...
In the past birth was always zero for holes. This feature started
to make use of birth for holes as well, so change code to test for
valid DVA address instead.
2015-05-03 18:11:29 +03:00
Michael Zimmermann
ed07b7e128
Add missing initializers to silence suprious warnings.
2015-03-27 14:44:41 +01:00
Vladimir Serbinenko
5fe21c9968
hfsplus: Fix potential access to uninited memory on invalid FS
2015-03-06 22:33:20 +01:00
Vladimir Serbinenko
87a04adb65
zfs/mzap_lookup: Fix argument types
2015-02-21 16:22:01 +01:00
Vladimir Serbinenko
5537a586e0
ext2: Ignore INCOMPAT_MMP.
...
It's not really incompatible as long as driver never writes to FS.
2015-02-16 21:08:37 +01:00
Vladimir Serbinenko
e20aa39ea4
ext2: Support META_BG.
...
This fixes bug that system would become unbootable after ext*
online resize if no resize_inode was created at ext* format time.
2015-02-16 20:53:26 +01:00
Andrei Borzenkov
edc94e4b0b
fs/hfsplus: fix memory leak.
...
Found by: Coverity scan.
2015-01-27 21:19:28 +03:00
Andrei Borzenkov
3900726fa8
fs/zfs/zfscrypt.c: fix indentation.
2015-01-27 21:13:10 +03:00
Andrei Borzenkov
fa13e60527
fs/zfs/zfscrypt.c: fix memory leaks.
...
Found by: Coverity scan.
2015-01-27 21:12:19 +03:00
Andrei Borzenkov
e871994849
fs/zfs/zfs.c: fix memory leak.
...
Found by: Coverity scan.
2015-01-27 20:52:27 +03:00
Vladimir Serbinenko
9ee5ae1fae
Document intentional fallthroughs.
...
Found by: Coverity scan.
2015-01-27 17:17:58 +01:00
Vladimir Serbinenko
916733ea6a
fs/zfscrypt: Add missing explicit cast.
...
Found by: Coverity scan.
2015-01-27 16:35:37 +01:00
Vladimir Serbinenko
0daf46fdbd
fs/zfs: Fix error handling.
...
Found by: Coverity Scan.
2015-01-27 16:32:21 +01:00
Vladimir Serbinenko
69a52e95d4
fs/{cbfs,cpio}: Remove useless check if mode is NULL.
...
Callers already ensure that it's not null.
Found by: Coverity Scan.
2015-01-27 16:32:21 +01:00
Vladimir Serbinenko
a4e33a8b18
fs/ufs: Add missing error check.
...
Found by: Coverity scan.
2015-01-26 09:36:19 +01:00
Vladimir Serbinenko
66baeffc0f
fs/sfs: Fix error check and add sanity check.
...
Found by: Coverity scan.
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
8c1d086689
fs/reiserfs: Fix sector count overflow.
...
Found by: Coverity scan.
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
157f9a9cca
fs/ntfs: Add sizes sanity checks.
...
Found by: Coverity scan.
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
bc0ecd7104
fs/ntfs: Add missing free.
...
Found by: Coverity scan.
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
ca793e9c05
fs/minix: Fix sector promotion to 64-bit.
...
While on it make GRUB_MINIX_ZONE2SECT into function.
Found by: Coverity scan
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
ac602ce700
grub_iso9660_read: Explicitly check read_node return value.
...
Not really needed as grub_errno is already checked but is nicer.
Found by: Coverity scan.
2015-01-25 20:32:31 +01:00
Vladimir Serbinenko
d0af2156c3
fs/hfs: Add pointer sanity checks.
...
Found by: Coverity scan.
2015-01-25 13:18:10 +01:00
Vladimir Serbinenko
4387ca78f0
fs/hfs/hfs_open: Check that mount succeeded.
...
Found by: Coverity scan.
2015-01-25 01:28:17 +01:00
Vladimir Serbinenko
83543f937a
fs/fat: Fix codepath to properly free on error.
...
Found by: Coverity scan.
2015-01-25 01:27:44 +01:00
Vladimir Serbinenko
faad548ce3
fs/cpio_common: Add a sanity check on namesize.
...
Found by: Coverity scan.
2015-01-25 00:11:59 +01:00
Vladimir Serbinenko
b6f21bcb98
fs/cbfs: Add missing free.
...
Found by: Coverity scan.
2015-01-25 00:00:49 +01:00
Vladimir Serbinenko
12a9c52e51
zfs: Fix disk-matching logic.
...
Reported by: Tim Chase <dweeezil>
2015-01-24 20:57:26 +01:00
Vladimir Serbinenko
475bffeae6
* grub-core/fs/zfs.c: Avoid divisions by zero.
2015-01-21 17:42:12 +01:00
Vladimir Serbinenko
9deb46e363
* grub-core/fs/btrfs.c: Avoid divisions by zero.
2015-01-21 17:42:12 +01:00
Vladimir Serbinenko
98f74998d5
* grub-core/fs/hfs.c (grub_hfs_mount): Additional filesystem sanity checks.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
5ed3a5d049
* grub-core/fs/minix.c: Additional filesystem sanity checks.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
47cd2645dd
* grub-core/fs/ext2.c (grub_ext2_mount): Additional checks for superblock validity.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
245e21b2b5
grub_ufs_mount: Check that sblock.ino_per_group is not 0.
2015-01-21 17:42:11 +01:00
Vladimir Serbinenko
9201cd79a3
Reject NILFS2 superblocks with over 1GiB blocks.
...
* grub-core/fs/nilfs2.c (grub_nilfs2_valid_sb): Check that
block size is <= 1GiB.
2015-01-21 17:42:10 +01:00
Vladimir Serbinenko
30e177a05b
grub-core/fs/minix.c (grub_minix_read_file): Avoid reading past the end of file.
2015-01-21 17:42:06 +01:00
Vladimir Serbinenko
af435524cd
grub_fshelp_read_file: Don't attempt to read past the end of file.
2015-01-21 17:38:04 +01:00
Peter Nelson
58f66137a3
* grub-core/fs/ext2.c (grub_ext2_read_block): Support large sparse chunks.
2014-12-07 17:57:49 +01:00
Andrei Borzenkov
03d79a878b
grub-core/fs/zfs/zfsinfo.c: memory leak in print_vdev_info
...
CID: 73635
2014-12-01 20:54:12 +03:00
Andrey Borzenkov
954fe77163
cleanup: grub_cpu_to_XXX_compile_time for constants
...
This tries to catch all cases where grub_cpu_to_XXX was used for constant
expressions (including sizeof).
2014-09-22 20:47:10 +04:00
Michael Chang
54bd9a0610
Fix incorrect address reference in btrfs
...
We encountered a weird random kernel initrd unpacking error on btrfs
and finally found it was caused by incorrect address reference in range
check for type GRUB_BTRFS_EXTENT_REGULAR and the entire result is
unpredictable.
This is a quick fix to make the address reference to the
grub_btrfs_extent_data structure correctly, not the pointer variable
to it.
Any suggestions to this patch is welcome.
2014-09-08 11:33:40 +01:00
Vladimir Serbinenko
33f6ce671f
* grub-core/fs/cbfs.c: Don't probe disks of unknow size.
...
Fixes hang on virtualbox.
2014-08-10 09:50:36 +02:00
Thomas Falcon
4afd0107ef
btrfs: fix get_root key comparison failures due to endianness
...
* grub-core/fs/btrfs.c (get_root): Convert
GRUB_BTRFS_ROOT_VOL_OBJECTID to little-endian.
2014-03-31 15:32:30 +01:00
Vladimir Serbinenko
2e238b3708
Make grub_zlib_decompress handle incomplete chunks.
...
Fixes squash4.
2013-12-18 23:39:49 +01:00
Vladimir Serbinenko
b8765fa082
Implement better integration with Mac firmware.
2013-12-17 15:21:02 +01:00
Vladimir Serbinenko
cc6fb517de
Remove practice of assigning random const pointers to device id.
...
This is not required as cache code already checks driver id as well.
2013-12-16 14:49:11 +01:00
Vladimir Serbinenko
7e47e27bd8
Add gcc_struct to all packed structures when compiling with mingw.
...
Just "packed" doesn't always pack the way we expect.
2013-12-15 14:14:30 +01:00
Vladimir Serbinenko
1a454efe89
Decrease stack usage in BtrFS.
...
We have only 92K of stack and using over 4K per frame is wasteful
* grub-core/fs/btrfs.c (grub_btrfs_lzo_decompress): Allocate on heap
rather than stack.
2013-11-16 16:15:26 +01:00
Vladimir Serbinenko
7b5d51d837
Decrease stack usage in JFS.
...
We have only 92K of stack and using over 4K per frame is wasteful
* grub-core/fs/jfs.c (getblk): Allocate on heap rather than on
stack. Note: this function is recursive.
(grub_jfs_read_inode): Read only part we care about.
2013-11-16 16:00:42 +01:00
Colin Watson
5da5517288
* grub-core/fs/ext2.c (grub_ext2_read_block): Factor out common code for indirect block handling.
...
Saves 185 bytes on compressed image.
2013-11-14 08:13:06 +00:00
Vladimir Serbinenko
81023dbdbd
* grub-core/fs/zfs/zfs.c (ZAP_LEAF_NUMCHUNKS): Use unsigned arithmetics.
2013-11-13 09:27:36 +01:00
Vladimir Serbinenko
3bbeade41d
* grub-core/fs/proc.c: Allow \0 in proc files.
2013-11-12 15:57:09 +01:00
Vladimir Serbinenko
ac8cac1dac
* grub-core/fs/ext2.c: Remove variable length arrays.
2013-11-12 03:04:19 +01:00
Vladimir Serbinenko
9612ebc00e
Add new ports: i386-xen and x86_64-xen. This allows running GRUB in
...
XEN PV environment and load kernels.
2013-11-09 21:29:11 +01:00
Vladimir Serbinenko
8b66bb5d8d
* grub-core/fs/zfs/zfscrypt.c (grub_ccm_decrypt): Return right error
...
type.
(grub_gcm_decrypt): Likewise.
(algo_decrypt): Likewise.
(grub_zfs_decrypt_real): Transform error type.
2013-11-07 00:59:44 +01:00
Vladimir Serbinenko
70bb6c855e
* grub-core/fs/reiserfs.c (grub_reiserfs_iterate_dir): Fix type of
...
entry_type.
2013-11-07 00:48:04 +01:00
Vladimir Serbinenko
bed78ef4e6
Revert "Attempts at ZFS options"
...
It was accidently committed to wrong branch
This reverts commit 0ee5cdfe9f
.
2013-11-03 16:52:33 +01:00
Vladimir Serbinenko
0ee5cdfe9f
Attempts at ZFS options
2013-11-03 16:40:32 +01:00
Vladimir Serbinenko
1397f0b520
* grub-core/fs/fshelp.c (find_file): Save ctx->next when calling
...
find_file recursively for symlink.
2013-11-02 20:29:02 +01:00
Vladimir Serbinenko
f169f65e75
* grub-core/fs/hfspluscomp.c (hfsplus_read_compressed_real): Call
...
file_progress_read_hook.
* grub-core/fs/ntfscomp.c (hfsplus_read_compressed_real): Likewise.
2013-11-02 16:30:53 +01:00
Vladimir Serbinenko
bf0f3a8c3e
* grub-core/fs/tar.c (grub_cpio_read): Add read_hook.
2013-11-01 23:33:59 +01:00
Vladimir Serbinenko
cb72aa1809
Rewrite blocklist functions in order to get progress when
...
reading large extents and decrease amount of blocklist hook calls.
2013-11-01 23:28:03 +01:00
Vladimir Serbinenko
eb03ede014
* grub-core/fs/ext2.c (grub_ext2_read_symlink): Use memcpy rather
...
strncpy.
* grub-core/fs/jfs.c (grub_jfs_lookup_symlink): Likewise.
* grub-core/kern/misc.c (grub_strncpy): Move from here ...
* include/grub/misc.h (grub_strncpy): ... to here. Make inline.
* grub-core/net/net.c (grub_net_addr_to_str): Use COMPILE_TIME_ASSERT
+ strcpy rather than strncpy.
2013-11-01 18:44:46 +01:00
Vladimir Serbinenko
8fbe5c7df7
* grub-core/fs/zfs/zfs.c (nvpair_name): Use correct type for size.
...
(check_pool_label): Likewise. Fixes overflow.
(nvlist_find_value): Fix comparison.
2013-11-01 18:41:52 +01:00
Vladimir Serbinenko
e54b8f536b
* include/grub/misc.h (grub_strcat): Removed. All users changed to
...
more appropriate functions.
2013-11-01 16:27:37 +01:00
Vladimir Serbinenko
82591fa6e7
Make / in btrfs refer to real root, not the default volume.
...
Modify mkrelpath to work even if device is mounted with subvolid option.
2013-10-28 01:37:19 +01:00
Vladimir Serbinenko
2a8a75855c
* grub-core/fs/iso9660.c: Replace strncat with memcpy.
...
* include/grub/misc.h: Remove strncat.
* grub-core/lib/posix_wrap/string.h: Likewise.
2013-10-26 12:49:51 +02:00
Vladimir Serbinenko
fb56391ee3
* grub-core/fs/zfs/zfs.c (xor_out): Use unsigned modular arithmetics
...
rather than signed one.
(recovery): Likewise.
2013-10-25 20:31:04 +02:00
Vladimir Serbinenko
6673d8e7b6
* grub-core/fs/ext2.c (EXT2_BLOCK_SIZE): Make unsigned.
2013-10-25 18:03:36 +02:00
Paulo Flabiano Smorigo
84a0e9699f
Add progress module to display load progress of files.
...
* grub-core/lib/progress.c: New file.
* grub-core/Makefile.core.def (progress): New module.
* grub-core/kern/file.c (grub_file_open): File name added.
* (grub_file_read): Progress hook added.
* grub-core/fs/cbfs.c (grub_cbfs_read): Likewise.
* grub-core/fs/cpio_common.c (grub_cpio_read): Likewise.
* grub-core/net/net.c (grub_net_fs_read_real): Likewise.
* include/grub/file.h (struct grub_file): Add progress module
* members.
* include/grub/term.h (struct grub_term_output): Likewise.
* grub-core/osdep/unix/emuconsole.c (grub_console_term_output):
Terminal velocity added.
* grub-core/osdep/windows/emuconsole.c (grub_console_term_output):
* Likewise.
* grub-core/term/arc/console.c (grub_console_term_output): Likewise.
* grub-core/term/efi/console.c (grub_console_term_output): Likewise.
* grub-core/term/gfxterm.c (grub_video_term): Likewise.
* grub-core/term/i386/coreboot/cbmemc.c (grub_cbmemc_term_output):
* Likewise.
* grub-core/term/i386/pc/console.c (grub_console_term_output):
* Likewise.
* grub-core/term/i386/pc/vga_text.c (grub_vga_text_term): Likewise.
* grub-core/term/ieee1275/console.c (grub_console_term_output):
* Likewise.
* grub-core/term/morse.c (grub_audio_term_output): Likewise.
* grub-core/term/serial.c (grub_serial_term_output): Likewise.
* grub-core/term/spkmodem.c (grub_spkmodem_term_output): Likewise.
* grub-core/term/uboot/console.c (uboot_console_term_output):
* Likewise.
2013-10-22 16:42:20 -02:00
Vladimir 'phcoder' Serbinenko
067e6ae74d
* grub-core/fs/ntfs.c (grub_ntfs_mount): Remove redundant check.
...
Saves 5 bytes on compressed image.
2013-10-21 13:14:38 +02:00
Vladimir 'phcoder' Serbinenko
64a6c791e1
* grub-core/fs/ntfs.c: Move common UTF-16 handling to a separate
...
function get_utf8.
Saves 379 bytes on compressed image.
2013-10-21 13:04:41 +02:00
Vladimir 'phcoder' Serbinenko
979d9f521d
* grub-core/fs/ntfs.c: Handle 48-bit MFT no.
2013-10-21 12:58:38 +02:00
Vladimir 'phcoder' Serbinenko
1437da5440
* grub-core/fs/ntfs.c (read_run_data): Rewrite using bitfields.
...
Saves 40 bytes on compressed image.
2013-10-21 04:05:23 +02:00
Vladimir 'phcoder' Serbinenko
d9ee2269c8
* grub-core/fs/ntfs.c (grub_ntfs_iterate_dir): Use grub_uint8_t for
...
mask rather than 64-bit type.
Saves 20 bytes on compressed image.
2013-10-21 03:23:57 +02:00
Vladimir 'phcoder' Serbinenko
63efa602ff
* grub-core/fs/ntfs.c (read_data): Move code for compressed data to ...
...
* grub-core/fs/ntfscomp.c (ntfscomp): ... here.
2013-10-21 02:48:19 +02:00
Vladimir 'phcoder' Serbinenko
2a40badf82
* grub-core/fs/ufs.c: Remove variable length arrays.
2013-10-20 23:07:50 +02:00
Vladimir 'phcoder' Serbinenko
1ba6b9b96f
* grub-core/fs/ntfs.c: Add comment about fixed allocation size.
2013-10-20 18:48:06 +02:00
Vladimir 'phcoder' Serbinenko
f3e393411b
* grub-core/fs/zfs.c: Remove variable length arrays.
...
Reduces zfs.mod by 160 bytes (208 compressed).
2013-10-20 18:42:40 +02:00
Vladimir 'phcoder' Serbinenko
7152393503
* grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak.
2013-10-20 17:57:28 +02:00
Vladimir 'phcoder' Serbinenko
88ce4cd7f6
* grub-core/fs/ntfs.c: Remove variable length arrays.
...
Increases ntfs.mod by 64 bytes (but decreases by 3 when
compressed).
2013-10-20 17:35:17 +02:00
Vladimir 'phcoder' Serbinenko
66123940c7
* grub-core/fs/hfs.c: Remove variable length arrays.
...
Reduces hfs.mod by 8 bytes (52 compressed).
2013-10-20 17:24:19 +02:00
Vladimir 'phcoder' Serbinenko
0927e5bdc8
* grub-core/fs/udf.c: Remove variable length arrays.
...
Increases udf.mod by 128 bytes (but decreases by 13 compressed when
compressed).
2013-10-20 16:33:12 +02:00
Vladimir 'phcoder' Serbinenko
9c12ac9773
* grub-core/fs/iso9660.c: Remove variable length arrays.
...
Increases iso9660.mod by 200 bytes (but decreases by 79 compressed when
compressed).
2013-10-20 16:21:02 +02:00
Vladimir 'phcoder' Serbinenko
97ec2d71d0
* grub-core/fs/nilfs2.c: Remove variable length arrays.
...
Increases xfs.mod by 24 bytes (but decreases by 115 compressed when
compressed).
2013-10-20 16:17:41 +02:00
Vladimir 'phcoder' Serbinenko
156e4ea071
* grub-core/fs/xfs.c: Remove variable length arrays.
...
Reduces xfs.mod by 40 bytes (43 compressed).
2013-10-20 15:52:27 +02:00
Vladimir 'phcoder' Serbinenko
3b502c29a1
* grub-core/fs/fshelp.c: Remove variable length arrays.
...
Reduces fshelp.mod by 116 bytes (23 compressed).
2013-10-20 15:38:37 +02:00
Vladimir 'phcoder' Serbinenko
a07e6ad010
* grub-core/fs/minix.c: Remove variable length arrays. Reduces jfs.mod
...
by 356 bytes (158 compressed).
2013-10-20 13:26:37 +02:00
Vladimir 'phcoder' Serbinenko
2359bf887c
* grub-core/fs/jfs.c: Remove variable length arrays. Reduces jfs.mod
...
by 364 bytes (169 compressed).
2013-10-20 13:20:12 +02:00
Vladimir 'phcoder' Serbinenko
d28e1163c3
* grub-core/fs/bfs.c: Remove variable length arrays. Reduces afs.mod and
...
bfs.mod size by 556 resp 740 bytes (288 resp 334 compressed).
* include/grub/types.h (grub_unaligned_uint64_t): New type.
2013-10-20 13:11:40 +02:00
Vladimir 'phcoder' Serbinenko
97dfe7e46b
* grub-core/fs/zfs/zfs_lz4.c: Check that __INTEL_COMPILER is
...
defined before trying to use it.
2013-10-18 16:49:17 +02:00
Vladimir 'phcoder' Serbinenko
bf919aa977
* grub-core/fs/affs.c (grub_affs_create_node): Fix uninited value
...
warning.
2013-10-18 16:47:30 +02:00
Vladimir 'phcoder' Serbinenko
5a869940de
Split out blocklist retrieving from setup.c to
...
grub-core/osdep/blocklist.c and add windows implementation since
generic version doesn't work on NTFS on Windows due to aggressive
unflushable cache.
2013-10-15 17:02:26 +02:00
Vladimir 'phcoder' Serbinenko
60d4f0bb45
* grub-core/fs/fat.c: Fix handling of exfat contiguous files.
2013-10-11 16:13:52 +02:00
Vladimir 'phcoder' Serbinenko
c4cf25eef7
* grub-core/fs/zfs/zfs_lz4.c: Switch from ad-hoc endiannes and width
...
macros to GRUB ones.
2013-10-08 16:55:39 +02:00
Vladimir 'phcoder' Serbinenko
b726be7653
* grub-core/fs/ufs.c (grub_ufs_get_file_block): Give GRUB_ERR_BAD_FS
...
for quadruple indirect rather than GRUB_ERR_NOT_IMPLEMENTED_YET as
it's FS and not GRUB limitation.
2013-10-07 20:07:19 +02:00