linux/tools/perf/util/intel-pt-decoder
Borislav Petkov f96b467583 x86/insn: Use get_unaligned() instead of memcpy()
Use get_unaligned() instead of memcpy() to access potentially unaligned
memory, which, when accessed through a pointer, leads to undefined
behavior. get_unaligned() describes much better what is happening there
anyway even if memcpy() does the job.

In addition, since perf tool builds with -Werror, it would fire with:

  util/intel-pt-decoder/../../../arch/x86/lib/insn.c: In function '__insn_get_emulate_prefix':
  tools/include/../include/asm-generic/unaligned.h:10:15: error: packed attribute is unnecessary [-Werror=packed]
     10 |  const struct { type x; } __packed *__pptr = (typeof(__pptr))(ptr); \

because -Werror=packed would complain if the packed attribute would have
no effect on the layout of the structure.

In this case, that is intentional so disable the warning only for that
compilation unit.

That part is Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>

No functional changes.

Fixes: 5ba1071f75 ("x86/insn, tools/x86: Fix undefined behavior due to potential unaligned accesses")
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Link: https://lkml.kernel.org/r/YVSsIkj9Z29TyUjE@zn.tnic
2021-10-06 11:56:37 +02:00
..
Build x86/insn: Use get_unaligned() instead of memcpy() 2021-10-06 11:56:37 +02:00
intel-pt-decoder.c perf intel-pt: Add a config for max loops without consuming a packet 2021-07-07 11:40:56 -03:00
intel-pt-decoder.h perf intel-pt: Add a config for max loops without consuming a packet 2021-07-07 11:40:56 -03:00
intel-pt-insn-decoder.c tools/perf: Convert to insn_decode() 2021-03-15 12:41:26 +01:00
intel-pt-insn-decoder.h perf intel_pt: Add vmlaunch and vmresume as branches 2021-02-18 16:13:30 -03:00
intel-pt-log.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intel-pt-log.h perf intel-pt: Add VM Time Correlation to decoder 2021-05-12 12:43:11 -03:00
intel-pt-pkt-decoder.c perf intel-pt: Retain the last PIP packet payload as is 2021-02-18 16:13:46 -03:00
intel-pt-pkt-decoder.h perf intel-pt: Retain the last PIP packet payload as is 2021-02-18 16:13:46 -03:00