diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/dev.c | 1 | ||||
-rw-r--r-- | fs/btrfs/disk-io.c | 1 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 8 | ||||
-rw-r--r-- | fs/btrfs/volumes.c | 2 | ||||
-rw-r--r-- | fs/cbfs/cbfs.c | 2 | ||||
-rw-r--r-- | fs/cramfs/cramfs.c | 2 | ||||
-rw-r--r-- | fs/cramfs/uncompress.c | 2 | ||||
-rw-r--r-- | fs/erofs/data.c | 2 | ||||
-rw-r--r-- | fs/ext4/dev.c | 1 | ||||
-rw-r--r-- | fs/ext4/ext4_common.c | 1 | ||||
-rw-r--r-- | fs/ext4/ext4_journal.c | 1 | ||||
-rw-r--r-- | fs/ext4/ext4_write.c | 1 | ||||
-rw-r--r-- | fs/ext4/ext4fs.c | 1 | ||||
-rw-r--r-- | fs/fat/fat.c | 1 | ||||
-rw-r--r-- | fs/fat/fat_write.c | 1 | ||||
-rw-r--r-- | fs/fs.c | 4 | ||||
-rw-r--r-- | fs/fs_internal.c | 1 | ||||
-rw-r--r-- | fs/jffs2/compr_zlib.c | 2 | ||||
-rw-r--r-- | fs/jffs2/jffs2_1pass.c | 1 | ||||
-rw-r--r-- | fs/jffs2/mergesort.c | 1 | ||||
-rw-r--r-- | fs/sandbox/host_bootdev.c | 1 | ||||
-rw-r--r-- | fs/sandbox/sandboxfs.c | 2 | ||||
-rw-r--r-- | fs/semihostingfs.c | 2 | ||||
-rw-r--r-- | fs/ubifs/super.c | 1 | ||||
-rw-r--r-- | fs/ubifs/ubifs.c | 1 | ||||
-rw-r--r-- | fs/yaffs2/yaffs_mtdif.c | 1 | ||||
-rw-r--r-- | fs/yaffs2/yaffs_mtdif2.c | 1 | ||||
-rw-r--r-- | fs/yaffs2/yaffs_uboot_glue.c | 1 | ||||
-rw-r--r-- | fs/zfs/dev.c | 1 | ||||
-rw-r--r-- | fs/zfs/zfs.c | 23 | ||||
-rw-r--r-- | fs/zfs/zfs_fletcher.c | 1 | ||||
-rw-r--r-- | fs/zfs/zfs_lzjb.c | 1 | ||||
-rw-r--r-- | fs/zfs/zfs_sha256.c | 1 |
33 files changed, 29 insertions, 44 deletions
diff --git a/fs/btrfs/dev.c b/fs/btrfs/dev.c index cb3b9713a5f..e27a032c9f6 100644 --- a/fs/btrfs/dev.c +++ b/fs/btrfs/dev.c @@ -5,7 +5,6 @@ * 2017 Marek BehĂșn, CZ.NIC, kabel@kernel.org */ -#include <common.h> #include <blk.h> #include <compiler.h> #include <fs_internal.h> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 7eaa7e94960..e5bfaf461c2 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1,5 +1,4 @@ // SPDX-License-Identifier: GPL-2.0+ -#include <common.h> #include <fs_internal.h> #include <log.h> #include <uuid.h> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 4691612eda3..3998ffc2c81 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -640,7 +640,11 @@ static int read_and_truncate_page(struct btrfs_path *path, extent_type = btrfs_file_extent_type(leaf, fi); if (extent_type == BTRFS_FILE_EXTENT_INLINE) { ret = btrfs_read_extent_inline(path, fi, buf); - memcpy(dest, buf + page_off, min(page_len, ret)); + if (ret < 0) { + free(buf); + return ret; + } + memcpy(dest, buf + page_off, min3(page_len, ret, len)); free(buf); return len; } @@ -652,7 +656,7 @@ static int read_and_truncate_page(struct btrfs_path *path, free(buf); return ret; } - memcpy(dest, buf + page_off, page_len); + memcpy(dest, buf + page_off, min(page_len, len)); free(buf); return len; } diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 7d4095d9ca8..8ec545eded7 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ #include <stdlib.h> -#include <common.h> +#include <errno.h> #include <fs_internal.h> #include "ctree.h" #include "disk-io.h" diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c index 714f4baafc9..ad5583233bb 100644 --- a/fs/cbfs/cbfs.c +++ b/fs/cbfs/cbfs.c @@ -3,10 +3,10 @@ * Copyright (c) 2011 The Chromium OS Authors. All rights reserved. */ -#include <common.h> #include <cbfs.h> #include <log.h> #include <malloc.h> +#include <linux/errno.h> #include <asm/byteorder.h> /* Offset of master header from the start of a coreboot ROM */ diff --git a/fs/cramfs/cramfs.c b/fs/cramfs/cramfs.c index abb2de34eb0..22148ff8fe2 100644 --- a/fs/cramfs/cramfs.c +++ b/fs/cramfs/cramfs.c @@ -24,7 +24,7 @@ * The actual compression is based on zlib, see the other files. */ -#include <common.h> +#include <stdio.h> #include <malloc.h> #include <asm/byteorder.h> #include <linux/stat.h> diff --git a/fs/cramfs/uncompress.c b/fs/cramfs/uncompress.c index 0d071b69f4c..2141edf22e4 100644 --- a/fs/cramfs/uncompress.c +++ b/fs/cramfs/uncompress.c @@ -20,7 +20,7 @@ * then is used by multiple filesystems. */ -#include <common.h> +#include <stdio.h> #include <cyclic.h> #include <malloc.h> #include <watchdog.h> diff --git a/fs/erofs/data.c b/fs/erofs/data.c index f4b21d7917a..95b609d8ea8 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -313,7 +313,7 @@ static int z_erofs_read_data(struct erofs_inode *inode, char *buffer, } if (!(map.m_flags & EROFS_MAP_MAPPED)) { - memset(buffer + end - offset, 0, length); + memset(buffer + end - offset, 0, length - skip); end = map.m_la; continue; } diff --git a/fs/ext4/dev.c b/fs/ext4/dev.c index 168443de1ff..3fd8980b1d6 100644 --- a/fs/ext4/dev.c +++ b/fs/ext4/dev.c @@ -22,7 +22,6 @@ * fs/ext2/dev.c file in uboot. */ -#include <common.h> #include <blk.h> #include <config.h> #include <fs_internal.h> diff --git a/fs/ext4/ext4_common.c b/fs/ext4/ext4_common.c index 2ff0dca2495..857c15d878e 100644 --- a/fs/ext4/ext4_common.c +++ b/fs/ext4/ext4_common.c @@ -18,7 +18,6 @@ * ext4write : Based on generic ext4 protocol. */ -#include <common.h> #include <blk.h> #include <ext_common.h> #include <ext4fs.h> diff --git a/fs/ext4/ext4_journal.c b/fs/ext4/ext4_journal.c index e80f797c8dc..02c4ac2cb93 100644 --- a/fs/ext4/ext4_journal.c +++ b/fs/ext4/ext4_journal.c @@ -13,7 +13,6 @@ * Copyright 1998-2000 Red Hat, Inc --- All Rights Reserved */ -#include <common.h> #include <blk.h> #include <ext4fs.h> #include <log.h> diff --git a/fs/ext4/ext4_write.c b/fs/ext4/ext4_write.c index d057f6b5a79..38da3923c47 100644 --- a/fs/ext4/ext4_write.c +++ b/fs/ext4/ext4_write.c @@ -21,7 +21,6 @@ */ -#include <common.h> #include <blk.h> #include <log.h> #include <malloc.h> diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c index 33e200ffa3c..da59cb008fc 100644 --- a/fs/ext4/ext4fs.c +++ b/fs/ext4/ext4fs.c @@ -20,7 +20,6 @@ * ext4write : Based on generic ext4 protocol. */ -#include <common.h> #include <blk.h> #include <ext_common.h> #include <ext4fs.h> diff --git a/fs/fat/fat.c b/fs/fat/fat.c index 2dd9d4e72dc..e2570e81676 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -10,7 +10,6 @@ #define LOG_CATEGORY LOGC_FS -#include <common.h> #include <blk.h> #include <config.h> #include <exports.h> diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index c8e0fbf1a3b..ea877ee9171 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_FS -#include <common.h> #include <command.h> #include <config.h> #include <div64.h> @@ -9,7 +9,6 @@ #include <config.h> #include <display_options.h> #include <errno.h> -#include <common.h> #include <env.h> #include <lmb.h> #include <log.h> @@ -21,6 +20,7 @@ #include <fs.h> #include <sandboxfs.h> #include <semihostingfs.h> +#include <time.h> #include <ubifs_uboot.h> #include <btrfs.h> #include <asm/global_data.h> @@ -224,7 +224,7 @@ static struct fstype_info fstypes[] = { .exists = ext4fs_exists, .size = ext4fs_size, .read = ext4_read_file, -#ifdef CONFIG_CMD_EXT4_WRITE +#ifdef CONFIG_EXT4_WRITE .write = ext4_write_file, .ln = ext4fs_create_link, #else diff --git a/fs/fs_internal.c b/fs/fs_internal.c index 111f91b355d..51c1719361b 100644 --- a/fs/fs_internal.c +++ b/fs/fs_internal.c @@ -7,7 +7,6 @@ #define LOG_CATEGORY LOGC_CORE -#include <common.h> #include <blk.h> #include <compiler.h> #include <log.h> diff --git a/fs/jffs2/compr_zlib.c b/fs/jffs2/compr_zlib.c index d306b6dc4cf..e1e3c15e75e 100644 --- a/fs/jffs2/compr_zlib.c +++ b/fs/jffs2/compr_zlib.c @@ -35,8 +35,6 @@ * */ -#include <common.h> -#include <config.h> #include <jffs2/jffs2.h> #include <jffs2/mini_inflate.h> diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c index 49ba82ef959..5b7d7f4ae88 100644 --- a/fs/jffs2/jffs2_1pass.c +++ b/fs/jffs2/jffs2_1pass.c @@ -111,7 +111,6 @@ */ -#include <common.h> #include <config.h> #include <malloc.h> #include <div64.h> diff --git a/fs/jffs2/mergesort.c b/fs/jffs2/mergesort.c index fca77aa6511..495937d792d 100644 --- a/fs/jffs2/mergesort.c +++ b/fs/jffs2/mergesort.c @@ -7,7 +7,6 @@ * http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html */ -#include <common.h> #include "jffs2_private.h" int sort_list(struct b_list *list) diff --git a/fs/sandbox/host_bootdev.c b/fs/sandbox/host_bootdev.c index 3ef53627608..3f74972a9f8 100644 --- a/fs/sandbox/host_bootdev.c +++ b/fs/sandbox/host_bootdev.c @@ -6,7 +6,6 @@ * Written by Simon Glass <sjg@chromium.org> */ -#include <common.h> #include <bootdev.h> #include <bootflow.h> #include <bootmeth.h> diff --git a/fs/sandbox/sandboxfs.c b/fs/sandbox/sandboxfs.c index 4ae41d5b4db..773b583fa43 100644 --- a/fs/sandbox/sandboxfs.c +++ b/fs/sandbox/sandboxfs.c @@ -3,7 +3,7 @@ * Copyright (c) 2012, Google Inc. */ -#include <common.h> +#include <stdio.h> #include <fs.h> #include <malloc.h> #include <os.h> diff --git a/fs/semihostingfs.c b/fs/semihostingfs.c index 3592338a686..77e39ca407e 100644 --- a/fs/semihostingfs.c +++ b/fs/semihostingfs.c @@ -4,7 +4,7 @@ * Copyright (c) 2012, Google Inc. */ -#include <common.h> +#include <stdio.h> #include <fs.h> #include <malloc.h> #include <os.h> diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index 3e7160352e6..788f88f0495 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -29,7 +29,6 @@ #include <linux/writeback.h> #else -#include <common.h> #include <malloc.h> #include <memalign.h> #include <linux/bitops.h> diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c index a509584e5d7..75de01e95f7 100644 --- a/fs/ubifs/ubifs.c +++ b/fs/ubifs/ubifs.c @@ -11,7 +11,6 @@ * Adrian Hunter */ -#include <common.h> #include <env.h> #include <gzip.h> #include <log.h> diff --git a/fs/yaffs2/yaffs_mtdif.c b/fs/yaffs2/yaffs_mtdif.c index 50fed2d4b15..0eec22bc4a5 100644 --- a/fs/yaffs2/yaffs_mtdif.c +++ b/fs/yaffs2/yaffs_mtdif.c @@ -12,7 +12,6 @@ */ /* XXX U-BOOT XXX */ -#include <common.h> #include "yportenv.h" diff --git a/fs/yaffs2/yaffs_mtdif2.c b/fs/yaffs2/yaffs_mtdif2.c index 81a4d964f3e..2bf171f99f1 100644 --- a/fs/yaffs2/yaffs_mtdif2.c +++ b/fs/yaffs2/yaffs_mtdif2.c @@ -14,7 +14,6 @@ /* mtd interface for YAFFS2 */ /* XXX U-BOOT XXX */ -#include <common.h> #include <linux/bug.h> #include <linux/errno.h> diff --git a/fs/yaffs2/yaffs_uboot_glue.c b/fs/yaffs2/yaffs_uboot_glue.c index 0a920561149..deddbaac51e 100644 --- a/fs/yaffs2/yaffs_uboot_glue.c +++ b/fs/yaffs2/yaffs_uboot_glue.c @@ -19,7 +19,6 @@ * This version now uses the ydevconfig mechanism to set up partitions. */ -#include <common.h> #include <div64.h> #include <malloc.h> #include <linux/printk.h> diff --git a/fs/zfs/dev.c b/fs/zfs/dev.c index fcd9893b3ac..722c6a86176 100644 --- a/fs/zfs/dev.c +++ b/fs/zfs/dev.c @@ -8,7 +8,6 @@ */ -#include <common.h> #include <config.h> #include <fs_internal.h> #include <zfs_common.h> diff --git a/fs/zfs/zfs.c b/fs/zfs/zfs.c index bfc11fa6676..9906d553fa6 100644 --- a/fs/zfs/zfs.c +++ b/fs/zfs/zfs.c @@ -10,13 +10,13 @@ * Copyright 2004 Sun Microsystems, Inc. */ -#include <common.h> #include <log.h> #include <malloc.h> #include <linux/stat.h> #include <linux/time.h> #include <linux/ctype.h> #include <asm/byteorder.h> +#include <u-boot/zlib.h> #include "zfs_common.h" #include "div64.h" @@ -183,7 +183,8 @@ static int zlib_decompress(void *s, void *d, uint32_t slen, uint32_t dlen) { - if (zlib_decompress(s, d, slen, dlen) < 0) + uLongf z_dest_len = dlen; + if (uncompress(d, &z_dest_len, s, slen) != Z_OK) return ZFS_ERR_BAD_FS; return ZFS_ERR_NONE; } @@ -334,6 +335,12 @@ vdev_uberblock_compare(uberblock_t *ub1, uberblock_t *ub2) return 0; } +static inline int +is_supported_spa_version(uint64_t version) { + return version == FEATURES_SUPPORTED_SPA_VERSION || + (version > 0 && version <= SPA_VERSION); +} + /* * Three pieces of information are needed to verify an uberblock: the magic * number, the version number, and the checksum. @@ -355,14 +362,12 @@ uberblock_verify(uberblock_t *uber, int offset, struct zfs_data *data) return ZFS_ERR_BAD_FS; } - if (zfs_to_cpu64(uber->ub_magic, LITTLE_ENDIAN) == UBERBLOCK_MAGIC - && zfs_to_cpu64(uber->ub_version, LITTLE_ENDIAN) > 0 - && zfs_to_cpu64(uber->ub_version, LITTLE_ENDIAN) <= SPA_VERSION) + if (zfs_to_cpu64(uber->ub_magic, LITTLE_ENDIAN) == UBERBLOCK_MAGIC && + is_supported_spa_version(zfs_to_cpu64(uber->ub_version, LITTLE_ENDIAN))) endian = LITTLE_ENDIAN; - if (zfs_to_cpu64(uber->ub_magic, BIG_ENDIAN) == UBERBLOCK_MAGIC - && zfs_to_cpu64(uber->ub_version, BIG_ENDIAN) > 0 - && zfs_to_cpu64(uber->ub_version, BIG_ENDIAN) <= SPA_VERSION) + if (zfs_to_cpu64(uber->ub_magic, BIG_ENDIAN) == UBERBLOCK_MAGIC && + is_supported_spa_version(zfs_to_cpu64(uber->ub_version, BIG_ENDIAN))) endian = BIG_ENDIAN; if (endian == UNKNOWN_ENDIAN) { @@ -1788,7 +1793,7 @@ check_pool_label(struct zfs_data *data) return ZFS_ERR_BAD_FS; } - if (version > SPA_VERSION) { + if (!is_supported_spa_version(version)) { free(nvlist); printf("SPA version too new %llu > %llu\n", (unsigned long long) version, diff --git a/fs/zfs/zfs_fletcher.c b/fs/zfs/zfs_fletcher.c index 008a303ec79..b06c335626a 100644 --- a/fs/zfs/zfs_fletcher.c +++ b/fs/zfs/zfs_fletcher.c @@ -8,7 +8,6 @@ * Use is subject to license terms. */ -#include <common.h> #include <malloc.h> #include <linux/stat.h> #include <linux/time.h> diff --git a/fs/zfs/zfs_lzjb.c b/fs/zfs/zfs_lzjb.c index b42d4980129..e79c5b4278f 100644 --- a/fs/zfs/zfs_lzjb.c +++ b/fs/zfs/zfs_lzjb.c @@ -8,7 +8,6 @@ * Use is subject to license terms. */ -#include <common.h> #include <malloc.h> #include <linux/stat.h> #include <linux/time.h> diff --git a/fs/zfs/zfs_sha256.c b/fs/zfs/zfs_sha256.c index cb5b1c06834..602d75254ff 100644 --- a/fs/zfs/zfs_sha256.c +++ b/fs/zfs/zfs_sha256.c @@ -8,7 +8,6 @@ * Use is subject to license terms. */ -#include <common.h> #include <malloc.h> #include <linux/stat.h> #include <linux/time.h> |