diff options
author | Konstantin Khlebnikov <khlebnikov@yandex-team.ru> | 2015-05-21 09:26:19 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2015-05-21 09:26:19 -0700 |
commit | f0e2efcfd271733119cfe499f5811968544cbe7b (patch) | |
tree | 7498547b41f58762556ce447684ba96fc8cfba1d /fs/pstore | |
parent | e26081808edadfd257c6c9d81014e3b25e9a6118 (diff) | |
download | linux-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.c | 2 |
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); |