diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-15 17:54:51 +0900 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-06-15 17:54:51 +0900 |
commit | 54ed0f71f0a0cbf3218e2503a50364f178b1e855 (patch) | |
tree | 6bb2b4a205bbc208311fbf46e9ed02eb05357a17 /fs/btrfs | |
parent | 35e60a6b7577218ac7eb7777c8849822a080e127 (diff) | |
parent | d41519a69b35b10af7fda867fb9100df24fdf403 (diff) | |
download | talos-obmc-linux-54ed0f71f0a0cbf3218e2503a50364f178b1e855.tar.gz talos-obmc-linux-54ed0f71f0a0cbf3218e2503a50364f178b1e855.zip |
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Pull crypto fix from Herbert Xu:
"This fixes a bug on sparc where we may dereference freed stack memory"
* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
crypto: Work around deallocated stack frame reference gcc bug on sparc.
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/hash.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/hash.c b/fs/btrfs/hash.c index a97fdc156a03..baacc1866861 100644 --- a/fs/btrfs/hash.c +++ b/fs/btrfs/hash.c @@ -38,6 +38,7 @@ u32 btrfs_crc32c(u32 crc, const void *address, unsigned int length) { SHASH_DESC_ON_STACK(shash, tfm); u32 *ctx = (u32 *)shash_desc_ctx(shash); + u32 retval; int err; shash->tfm = tfm; @@ -47,5 +48,7 @@ u32 btrfs_crc32c(u32 crc, const void *address, unsigned int length) err = crypto_shash_update(shash, address, length); BUG_ON(err); - return *ctx; + retval = *ctx; + barrier_data(ctx); + return retval; } |