mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
Currently, trace_cachefiles_coherency() is being passed a pointer to a
__be64 lain over the coherency data in struct cachefiles_xattr so that it
can display the first 8 bytes. However, the data is of variable length and
could even be 0 bytes. This could lead to a UAF or KASAN warning.
Fix this by making sure the buffer has room for at least 8 bytes and that
those 8 bytes are pre-cleared.
Further, those bytes are not 8-byte aligned, so fix the tracepoint to
extract the data as four 2-byte words (they are 2-byte aligned) and
reassemble the __be64. The compiler will convert this into a single 8-byte
load where the CPU supports it.
Fixes:
|
||
|---|---|---|
| .. | ||
| cache.c | ||
| daemon.c | ||
| error_inject.c | ||
| interface.c | ||
| internal.h | ||
| io.c | ||
| Kconfig | ||
| key.c | ||
| main.c | ||
| Makefile | ||
| namei.c | ||
| security.c | ||
| volume.c | ||
| xattr.c | ||