diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-31 08:26:39 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2023-10-31 08:26:39 +0300 |
commit | 5e37269945b4d6117770666a40081848558f9501 (patch) | |
tree | bf45e1d7970d3f90540dee9a9314d3a97c0bea64 /fs | |
parent | befaa609f4c784f505c02ea3ff036adf4f4aa814 (diff) | |
parent | a19d48f7c5d57c0f0405a7d4334d1d38fe9d3c1c (diff) | |
download | linux-5e37269945b4d6117770666a40081848558f9501.tar.xz |
Merge tag 'pstore-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull pstore updates from Kees Cook:
- Check for out-of-memory condition during initialization (Jiasheng
Jiang)
- Fix documentation typos (Tudor Ambarus)
* tag 'pstore-v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
pstore/platform: Add check for kstrdup
docs: pstore-blk.rst: fix typo, s/console/ftrace
docs: pstore-blk.rst: use "about" as a preposition after "care"
Diffstat (limited to 'fs')
-rw-r--r-- | fs/pstore/platform.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index e5bca9a004cc..03425928d2fb 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -464,6 +464,8 @@ out: */ int pstore_register(struct pstore_info *psi) { + char *new_backend; + if (backend && strcmp(backend, psi->name)) { pr_warn("backend '%s' already in use: ignoring '%s'\n", backend, psi->name); @@ -484,11 +486,16 @@ int pstore_register(struct pstore_info *psi) return -EINVAL; } + new_backend = kstrdup(psi->name, GFP_KERNEL); + if (!new_backend) + return -ENOMEM; + mutex_lock(&psinfo_lock); if (psinfo) { pr_warn("backend '%s' already loaded: ignoring '%s'\n", psinfo->name, psi->name); mutex_unlock(&psinfo_lock); + kfree(new_backend); return -EBUSY; } @@ -521,7 +528,7 @@ int pstore_register(struct pstore_info *psi) * Update the module parameter backend, so it is visible * through /sys/module/pstore/parameters/backend */ - backend = kstrdup(psi->name, GFP_KERNEL); + backend = new_backend; pr_info("Registered %s as persistent store backend\n", psi->name); |