diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-21 00:37:14 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2025-01-21 00:37:14 +0300 |
commit | 5d8a4bd6b251216acc532801f6a5258903aead42 (patch) | |
tree | 062e22ac5c53591b619e943f25fdf996d763f607 | |
parent | fadc3ed9ce1cd9ecc5c8be8875f7ec11ab3a7ebe (diff) | |
parent | 067cdf020329a07dd8ee1574c3086998343b1b2b (diff) | |
download | linux-5d8a4bd6b251216acc532801f6a5258903aead42.tar.xz |
Merge tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull pstore updates from Kees Cook:
- pstore/blk: trivial typo fixes (Eugen Hristev)
- pstore/zone: reject zero-sized allocations (Eugen Hristev)
* tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
pstore/zone: avoid dereferencing zero sized ptr after init zones
pstore/blk: trivial typo fixes
-rw-r--r-- | fs/pstore/blk.c | 4 | ||||
-rw-r--r-- | fs/pstore/zone.c | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/fs/pstore/blk.c b/fs/pstore/blk.c index 65b2473e22ff..fa6b8cb788a1 100644 --- a/fs/pstore/blk.c +++ b/fs/pstore/blk.c @@ -89,7 +89,7 @@ static struct pstore_device_info *pstore_device_info; _##name_ = check_size(name, alignsize); \ else \ _##name_ = 0; \ - /* Synchronize module parameters with resuls. */ \ + /* Synchronize module parameters with results. */ \ name = _##name_ / 1024; \ dev->zone.name = _##name_; \ } @@ -121,7 +121,7 @@ static int __register_pstore_device(struct pstore_device_info *dev) if (pstore_device_info) return -EBUSY; - /* zero means not limit on which backends to attempt to store. */ + /* zero means no limit on which backends attempt to store. */ if (!dev->flags) dev->flags = UINT_MAX; diff --git a/fs/pstore/zone.c b/fs/pstore/zone.c index 694db616663f..ceb5639a0629 100644 --- a/fs/pstore/zone.c +++ b/fs/pstore/zone.c @@ -1212,6 +1212,11 @@ static struct pstore_zone **psz_init_zones(enum pstore_type_id type, } c = total_size / record_size; + if (unlikely(!c)) { + pr_err("zone %s total_size too small\n", name); + return ERR_PTR(-EINVAL); + } + zones = kcalloc(c, sizeof(*zones), GFP_KERNEL); if (!zones) { pr_err("allocate for zones %s failed\n", name); |