linux/tools
Arnaldo Carvalho de Melo 075d2c3235 perf dso: Use stored fd error instead of stale errno in file_read() and file_size()
file_read() and file_size() use ret = -errno when
dso__data(dso)->fd is negative after try_to_open_dso() fails.  By this
point errno has been through mutex_lock(), nsinfo__mountns_enter(), and
multiple open() attempts inside try_to_open_dso() — it no longer
reflects the actual open failure.  If errno happens to be 0, ret = 0
looks like EOF rather than an error, and file_size() callers like
dso__data_size() would then report a zero-sized file instead of
failing.

dso__data(dso)->fd is always negative on failure — -errno from
__open_dso() when no filename could be built (e.g. -EINVAL, -ENOENT),
or -1 when do_open() itself failed — and never 0, so use it directly
instead of reading the stale global errno.

No assert() or comment is needed after the assignment: the enclosing
if (dso__data(dso)->fd < 0) already guarantees ret < 0
[Namhyung Kim review].

Fixes: 33bdedcea2 ("perf tools: Protect dso cache fd with a mutex")
Reported-by: sashiko-bot <sashiko-bot@kernel.org>
Reviewed-by: Ian Rogers <irogers@google.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-08-15 06:37:04 -07:00
..
accounting
arch tools headers: Sync KVM headers with the kernel sources 2026-07-21 21:00:10 -03:00
bootconfig Bootconfig updates for v7.2 2026-06-16 17:29:24 +05:30
bpf tools/build: selftests: Remove some duplicate toolchain definitions 2026-07-25 22:25:00 -07:00
build perf build: Remove leftover feature tests for removed cxx and clang support 2026-08-12 06:17:49 -07:00
certs
cgroup
counter
crypto
debugging
dma
docs
firewire
firmware
gpio
hv
iio
include tools headers: Sync KVM headers with the kernel sources 2026-07-21 21:00:10 -03:00
kvm/kvm_stat
laptop
leds
lib tools/build: selftests: Remove some duplicate toolchain definitions 2026-07-25 22:25:00 -07:00
memory-model
mm slab changes for 7.2 - part 2 2026-06-22 08:28:48 -07:00
net tools/ynl: add missing uapi header deps in Makefile.deps 2026-06-24 19:30:55 -07:00
objtool
pcmcia
perf perf dso: Use stored fd error instead of stale errno in file_read() and file_size() 2026-08-15 06:37:04 -07:00
power platform-drivers-x86 for v7.2-1 2026-06-23 08:31:33 -07:00
rcu
sched
sched_ext tools/sched_ext: scx - Fix cmask_subset(), cmask_equal() and cmask_weight() 2026-07-09 11:08:41 -10:00
scripts tools build: Only probe the compiler at parse time when it is installed 2026-08-12 06:17:48 -07:00
sound
spi
testing perf tools fixes for v7.2. 2026-07-28 22:11:23 -07:00
thermal
time
tracing rtla: Also link in ctype.c 2026-07-08 10:38:18 +02:00
unittests
usb usbip: tools: support SuperSpeedPlus devices 2026-07-08 13:29:13 +02:00
verification
virtio tools/virtio: add missing compat definitions for vhost_net_test 2026-07-01 19:02:56 -07:00
wmi
workqueue
writeback
Makefile