summaryrefslogtreecommitdiffstats
path: root/fs/pstore
diff options
context:
space:
mode:
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>2015-05-21 09:26:19 -0700
committerTony Luck <tony.luck@intel.com>2015-05-21 09:26:19 -0700
commitf0e2efcfd271733119cfe499f5811968544cbe7b (patch)
tree7498547b41f58762556ce447684ba96fc8cfba1d /fs/pstore
parente26081808edadfd257c6c9d81014e3b25e9a6118 (diff)
downloadlinux-f0e2efcfd271733119cfe499f5811968544cbe7b.tar.gz
linux-f0e2efcfd271733119cfe499f5811968544cbe7b.tar.bz2
linux-f0e2efcfd271733119cfe499f5811968544cbe7b.zip
pstore: do not use message compression without lock
pstore_compress() uses static stream buffer for zlib-deflate which easily crashes when several concurrent threads use one shared state. Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'fs/pstore')
-rw-r--r--fs/pstore/platform.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c
index c4c9a10c5760..de525ec0b490 100644
--- a/fs/pstore/platform.c
+++ b/fs/pstore/platform.c
@@ -299,7 +299,7 @@ static void pstore_dump(struct kmsg_dumper *dumper,
bool compressed;
size_t total_len;
- if (big_oops_buf) {
+ if (big_oops_buf && is_locked) {
dst = big_oops_buf;
hsize = sprintf(dst, "%s#%d Part%u\n", why,
oopscount, part);