hexdump: fix for non-aligned buffers
authorHoracio Mijail Anton Quiles <hmijail@gmail.com>
Fri, 17 Jul 2015 23:24:04 +0000 (16:24 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 17 Jul 2015 23:39:53 +0000 (16:39 -0700)
commit0f70fe605fad0f3215818ba79fc12617c0ec7f90
tree4e0e1768928926e774f92081fa5236df02df8fe2
parentb4749e96a4a872c2496602566f205547c4e3c950
hexdump: fix for non-aligned buffers

A hexdump with a buf not aligned to the groupsize causes
non-naturally-aligned memory accesses.  This was causing a kernel panic
on the processor BlackFin BF527, when such an unaligned buffer was fed
by the function ubifs_scanned_corruption in fs/ubifs/scan.c .

To fix this, change accesses to the contents of the buffer so they go
through get_unaligned().  This change should be harmless to unaligned-
access-capable architectures, and any performance hit should be anyway
dwarfed by the snprintf() processing time.

Signed-off-by: Horacio Mijail Antón Quiles <hmijail@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Joe Perches <joe@perches.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/hexdump.c