exynos-linux-stable/tools/perf/util
disconnect3d 6d5fd9db8c perf map: Fix off by one in strncpy() size argument
commit db2c549407d4a76563c579e4768f7d6d32afefba upstream.

This patch fixes an off-by-one error in strncpy size argument in
tools/perf/util/map.c. The issue is that in:

        strncmp(filename, "/system/lib/", 11)

the passed string literal: "/system/lib/" has 12 bytes (without the NULL
byte) and the passed size argument is 11. As a result, the logic won't
match the ending "/" byte and will pass filepaths that are stored in
other directories e.g. "/system/libmalicious/bin" or just
"/system/libmalicious".

This functionality seems to be present only on Android. I assume the
/system/ directory is only writable by the root user, so I don't think
this bug has much (or any) security impact.

Fixes: eca8183699 ("perf tools: Add automatic remapping of Android libraries")
Signed-off-by: disconnect3d <dominik.b.czarnota@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Changbin Du <changbin.du@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Keeping <john@metanate.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Michael Lentine <mlentine@google.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lore.kernel.org/lkml/20200309104855.3775-1-dominik.b.czarnota@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-02 17:20:41 +02:00
..
include perf probe: Support probing on offline cross-arch binary 2016-09-01 12:41:09 -03:00
intel-pt-decoder perf intel-pt: Fix sample timestamp wrt non-taken branches 2019-05-25 18:26:50 +02:00
libunwind perf unwind: Fix wrongly used regs for aarch64 unwind 2016-06-23 10:30:31 -03:00
scripting-engines perf scripting perl: Fix compile error with some perl5 versions 2017-07-15 12:16:14 +02:00
alias.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
annotate.c perf symbols: Fix memory corruption because of zero length symbols 2018-11-10 07:42:44 -08:00
annotate.h perf annotate: Pass the symbol's map/dso to the instruction parsers 2016-09-20 12:28:29 -03:00
auxtrace.c perf auxtrace: Define auxtrace record alignment 2019-03-23 13:19:53 +01:00
auxtrace.h perf auxtrace: Define auxtrace record alignment 2019-03-23 13:19:53 +01:00
block-range.c perf annotate: Add branch stack / basic block 2016-09-08 13:44:03 -03:00
block-range.h perf annotate: Add branch stack / basic block 2016-09-08 13:44:03 -03:00
bpf-loader.c perf bpf: Fix typo: "ehough" -> "enough" 2016-08-23 17:06:39 -03:00
bpf-loader.h perf bpf: Rename bpf__foreach_tev() to bpf__foreach_event() 2016-07-13 23:09:03 -03:00
bpf-prologue.c perf bpf: Add prologue for BPF programs for fetching arguments 2015-11-18 17:51:04 -03:00
bpf-prologue.h perf bpf: Add prologue for BPF programs for fetching arguments 2015-11-18 17:51:04 -03:00
Build perf jit: Enable jitdump support without dwarf 2017-01-26 08:24:36 +01:00
build-id.c perf build-id: Fix memory leak in print_sdt_events() 2019-04-20 09:07:48 +02:00
build-id.h perf probe: Support @BUILDID or @FILE suffix for SDT events 2016-07-13 23:09:08 -03:00
cache.h perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
call-path.c perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
call-path.h perf tools: Refactor code to move call path handling out of thread-stack 2016-05-06 13:00:43 -03:00
callchain.c perf callchain: Reference count maps 2017-03-12 06:41:47 +01:00
callchain.h perf callchain: Reference count maps 2017-03-12 06:41:47 +01:00
cgroup.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
cgroup.h perf tools: Remove needless 'extern' from function prototypes 2016-03-23 15:06:35 -03:00
cloexec.c perf tools: Introduce weak alternative to sched_getcpu() 2016-07-12 15:20:34 -03:00
cloexec.h perf tools: Remove needless 'extern' from function prototypes 2016-03-23 15:06:35 -03:00
color.c perf tools: Uninline scnprintf() and vscnprint() 2016-07-12 15:20:24 -03:00
color.h
comm.c
comm.h
config.c perf config: Fix a memory leak in collect_config() 2019-04-20 09:07:48 +02:00
config.h perf config: Introduce new init() and exit() 2016-06-23 17:20:04 -03:00
counts.c
counts.h
cpumap.c perf tools: Handle TOPOLOGY headers with no CPU 2019-03-13 14:04:55 -07:00
cpumap.h perf cpu_map: Add more helpers 2016-07-18 19:42:47 -03:00
cs-etm.h perf tools: Add coresight etm PMU record capabilities 2016-09-22 12:19:40 -03:00
ctype.c perf ui/stdio: Align column header for hierarchy output 2016-02-24 20:21:12 -03:00
data-convert-bt.c perf data: Fix 'strncat may truncate' build failure with recent gcc 2019-06-22 08:17:23 +02:00
data-convert-bt.h perf data ctf: Pass convert options through opts structure 2016-06-28 10:54:55 -03:00
data-convert.h perf data ctf: Add 'all' option 2016-06-28 10:54:56 -03:00
data.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
data.h perf data: Add perf_data_file__switch() helper 2016-04-14 08:57:54 -03:00
db-export.c perf thread: Adopt get_main_thread from db-export.c 2016-05-30 12:41:43 -03:00
db-export.h perf script: Add call path id to exported sample in db export 2016-05-06 13:00:53 -03:00
debug.c tools: Introduce tools/include/linux/time64.h for *SEC_PER_*SEC macros 2016-08-23 15:37:33 -03:00
debug.h tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
demangle-java.c perf symbols: add Java demangling support 2016-02-05 09:46:45 -03:00
demangle-java.h perf symbols: add Java demangling support 2016-02-05 09:46:45 -03:00
demangle-rust.c perf symbols: Add Rust demangling 2016-07-12 16:12:38 -03:00
demangle-rust.h perf symbols: Add Rust demangling 2016-07-12 16:12:38 -03:00
drv_configs.c perf pmu: Push configuration down to PMU driver 2016-09-22 12:19:41 -03:00
drv_configs.h perf pmu: Push configuration down to PMU driver 2016-09-22 12:19:41 -03:00
dso.c perf tools: Fix symbol and object code resolution for vdso32 and vdsox32 2018-07-03 11:23:15 +02:00
dso.h perf tools: Uninline scnprintf() and vscnprint() 2016-07-12 15:20:24 -03:00
dwarf-aux.c perf probe: Fix to show function entry line as probe-able 2020-01-04 13:40:28 +01:00
dwarf-aux.h perf probe: Fix to show function entry line as probe-able 2020-01-04 13:40:28 +01:00
dwarf-regs.c perf probe: Support probing on offline cross-arch binary 2016-09-01 12:41:09 -03:00
env.c perf header: Transform nodes string info to struct 2016-07-04 19:39:01 -03:00
env.h perf header: Transform nodes string info to struct 2016-07-04 19:39:01 -03:00
event.c perf cpu_map: Align cpu map synthesized events properly. 2018-11-13 11:16:48 -08:00
event.h Revert "perf tools: event.h needs asm/perf_regs.h" 2016-07-25 11:58:56 -03:00
evlist.c perf tools: Experiment with cppcheck 2016-10-03 11:24:13 -03:00
evlist.h perf evlist: Make {pause,resume} internal helpers 2016-07-15 17:27:50 -03:00
evsel.c perf evsel: Make perf_evsel__name() accept a NULL argument 2019-08-04 09:33:20 +02:00
evsel.h perf evsel: Add support for address filters 2016-09-29 11:16:59 -03:00
evsel_fprintf.c perf script: Fix vanished idle symbols 2016-09-29 11:17:00 -03:00
find-vdso-map.c
genelf.c perf jit: Enable jitdump support without dwarf 2017-01-26 08:24:36 +01:00
genelf.h perf jit: Enable jitdump support without dwarf 2017-01-26 08:24:36 +01:00
genelf_debug.c perf jit: add source line info support 2016-02-05 12:33:09 -03:00
generate-cmdlist.sh perf tools: Do not show trace command if it's not compiled in 2016-01-08 12:46:17 -03:00
group.h perf stat: Basic support for TopDown in perf stat 2016-06-06 17:04:15 -03:00
header.c perf tools: Fix segfault in cpu_cache_level__read() 2019-10-17 13:42:15 -07:00
header.h perf pmu: Use pmu_events table to create aliases 2016-10-03 19:58:00 -03:00
help-unknown-cmd.c perf tools: Uninline scnprintf() and vscnprint() 2016-07-12 15:20:24 -03:00
help-unknown-cmd.h perf tools: Move help_unknown_cmd() to its own file 2015-12-14 12:30:37 -03:00
hist.c perf tools: Fix time sorting 2019-11-12 19:15:43 +01:00
hist.h perf hists: Fix variable name's inconsistency in hists__for_each() macro 2020-01-23 08:19:40 +01:00
intel-bts.c perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00
intel-bts.h
intel-pt.c perf intel-pt: Fix divide by zero when TSC is not available 2019-03-23 13:19:53 +01:00
intel-pt.h perf intel-pt: Record address filter in AUXTRACE_INFO event 2016-09-29 11:17:05 -03:00
intlist.c
intlist.h perf intlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:39:19 -03:00
jit.h perf tools: Remove needless 'extern' from function prototypes 2016-03-23 15:06:35 -03:00
jitdump.c perf inject jit: Fix JIT_CODE_MOVE filename 2019-10-17 13:42:43 -07:00
jitdump.h perf jit: Add support for using TSC as a timestamp 2016-04-01 18:42:55 -03:00
kvm-stat.h perf kvm/powerpc: Port perf kvm stat to powerpc 2016-01-29 17:49:54 -03:00
levenshtein.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
levenshtein.h
llvm-utils.c perf llvm: Don't access out-of-scope array 2019-10-17 13:42:42 -07:00
llvm-utils.h perf llvm: Allow dump llvm output object file using llvm.dump-obj 2016-06-21 13:18:34 -03:00
lzma.c perf tools: Fix error handling of lzma decompression 2016-08-24 11:20:58 -03:00
machine.c perf record: Fix module size on s390 2019-08-25 10:51:21 +02:00
machine.h perf record: Fix module size on s390 2019-08-25 10:51:21 +02:00
map.c perf map: Fix off by one in strncpy() size argument 2020-04-02 17:20:41 +02:00
map.h perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00
mem-events.c perf mem: Add --ldlat option 2016-06-15 10:35:27 -03:00
mem-events.h perf mem: Add --ldlat option 2016-06-15 10:35:27 -03:00
ordered-events.c perf inject: Copy events when reordering events in pipe mode 2018-03-22 09:17:51 +01:00
ordered-events.h perf ordered_events: Introduce reinit() 2016-04-14 08:57:54 -03:00
parse-branch-options.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
parse-branch-options.h
parse-events.c perf build-id: Fix memory leak in print_sdt_events() 2019-04-20 09:07:48 +02:00
parse-events.h perf list: Support long jevents descriptions 2016-10-03 21:35:47 -03:00
parse-events.l perf jevents: Handle events including .c and .o 2016-10-17 11:24:18 -03:00
parse-events.y perf tools: Fix pmu events parsing rule 2018-08-03 07:55:13 +02:00
parse-regs-options.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
parse-regs-options.h
path.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
PERF-VERSION-GEN
perf_regs.c perf tools: Fix perf regs mask generation 2016-05-11 21:54:06 +10:00
perf_regs.h perf regs: Make perf_reg_name() return "unknown" instead of NULL 2020-01-04 13:41:02 +01:00
pmu.c perf pmu: Suppress potential format-truncation warning 2019-01-09 16:16:43 +01:00
pmu.h perf list jevents: Add support for event list topics 2016-10-03 21:35:47 -03:00
pmu.l
pmu.y
probe-event.c perf probe: Fix probe definition for inlined functions 2018-11-10 07:42:49 -08:00
probe-event.h perf probe: Add helper function to check if probe with variable 2016-09-01 12:42:25 -03:00
probe-file.c perf probe: Fix unchecked usage of strncpy() 2019-02-12 19:44:55 +01:00
probe-file.h perf probe: Add supported for type casting by the running kernel 2016-08-23 17:03:31 -03:00
probe-finder.c perf probe: Do not depend on dwfl_module_addrsym() 2020-04-02 17:20:33 +02:00
probe-finder.h perf probe: Fix to probe on gcc generated functions in modules 2017-07-05 14:40:27 +02:00
pstack.c
pstack.h
python-ext-sources tools lib api: Add str_error_c to libapi 2016-07-27 17:16:43 -03:00
python.c perf tools: Make is_printable_array global 2016-07-18 19:49:47 -03:00
quote.c perf quote: Disentangle headers 2016-07-12 15:19:55 -03:00
quote.h perf quote: Disentangle headers 2016-07-12 15:19:55 -03:00
rb_resort.h perf rb_resort: Rename for_each() macros to for_each_entry() 2016-06-23 11:35:07 -03:00
rblist.c
rblist.h
record.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
session.c perf session: Don't rely on evlist in pipe mode 2018-03-22 09:17:51 +01:00
session.h perf evsel: Move some methods from session.[ch] to evsel.[ch] 2016-04-13 10:11:52 -03:00
setup.py perf tools: Fix python extension build 2016-02-29 11:18:25 -03:00
sort.c perf sort: Fix segfault with basic block 'cycles' sort dimension 2018-03-22 09:17:38 +01:00
sort.h perf tools: Make several sorting functions global 2016-09-22 13:08:57 -03:00
srcline.c
stat-shadow.c perf stat: Add computation of TopDown formulas 2016-06-06 17:04:16 -03:00
stat.c perf stat: Reset previous counts on repeat with interval 2019-10-17 13:42:17 -07:00
stat.h perf stat: Reset previous counts on repeat with interval 2019-10-17 13:42:17 -07:00
strbuf.c perf strbuf: Remove redundant va_end() in strbuf_addv() 2020-01-04 13:41:05 +01:00
strbuf.h perf tools: Experiment with cppcheck 2016-10-03 11:24:13 -03:00
strfilter.c tools strfilter: Use __fallthrough 2017-07-15 12:16:12 +02:00
strfilter.h
string.c tools string: Use __fallthrough in perf_atoll() 2017-07-15 12:16:12 +02:00
strlist.c perf tools: Add file_only config option to strlist 2016-01-12 12:42:07 -03:00
strlist.h perf tools: Rename strlist_for_each() macros to for_each_entry() 2016-06-23 11:35:01 -03:00
svghelper.c perf svghelper: Fix unchecked usage of strncpy() 2019-01-26 09:38:34 +01:00
svghelper.h perf tools: Remove needless 'extern' from function prototypes 2016-03-23 15:06:35 -03:00
symbol-elf.c perf record: Fix wrong size in perf_record_mmap for last kernel module 2019-08-25 10:51:20 +02:00
symbol-minimal.c perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00
symbol.c perf record: Fix wrong size in perf_record_mmap for last kernel module 2019-08-25 10:51:20 +02:00
symbol.h perf record: Fix wrong size in perf_record_mmap for last kernel module 2019-08-25 10:51:20 +02:00
symbol_fprintf.c perf symbols: Move fprintf routines to separate object file 2016-04-14 19:46:53 -03:00
syscalltbl.c perf tools: Build syscall table .c header from kernel's syscall_64.tbl 2016-04-08 09:58:14 -03:00
syscalltbl.h perf tools: Allow generating per-arch syscall table arrays 2016-04-08 09:58:14 -03:00
target.c perf target: str_error_r() always returns the buffer it receives 2016-07-29 11:54:35 -03:00
target.h
term.c perf tools: Move term functions out of util.c 2015-12-09 13:42:02 -03:00
term.h perf tools: Move term functions out of util.c 2015-12-09 13:42:02 -03:00
thread-stack.c perf script: Add callindent option 2016-06-23 17:04:26 -03:00
thread-stack.h perf script: Add callindent option 2016-06-23 17:04:26 -03:00
thread.c perf db-export: Fix thread__exec_comm() 2019-08-25 10:51:20 +02:00
thread.h perf unwind: Move unwind__prepare_access from thread_new into thread__insert_map 2016-06-07 12:08:52 -03:00
thread_map.c perf thread_map: Correctly size buffer used with dirent->dt_name 2017-07-15 12:16:13 +02:00
thread_map.h perf thread_map: Make new_by_tid_str constructor public 2016-04-13 10:11:51 -03:00
tool.h perf tools: Add time conversion event 2016-03-31 10:52:24 -03:00
top.c
top.h perf top: Use machine->kptr_restrict_warned 2016-05-20 11:43:55 -03:00
trace-event-info.c perf tools: Cleanup trace-event-info 'tdata' leak 2018-11-13 11:16:49 -08:00
trace-event-parse.c irq_poll: make blk-iopoll available outside the block layer 2015-12-11 11:52:24 -08:00
trace-event-read.c perf tools: Free temporary 'sys' string in read_event_files() 2018-11-13 11:16:49 -08:00
trace-event-scripting.c perf scripting: Avoid leaking the scripting_context variable 2017-01-26 08:24:36 +01:00
trace-event.c perf tools: Introduce trace_event__tp_format_id() 2016-07-12 16:14:52 -03:00
trace-event.h perf tools: Introduce trace_event__tp_format_id() 2016-07-12 16:14:52 -03:00
trigger.h perf tools: Fix trigger class trigger_on() 2018-03-18 11:18:50 +01:00
tsc.c perf tools: Use 64-bit shifts with (TSC) time conversion 2016-03-08 10:11:18 +01:00
tsc.h perf jit: Add support for using TSC as a timestamp 2016-04-01 18:42:55 -03:00
unwind-libdw.c perf report: Include partial stacks unwound with libdw 2019-02-20 10:18:30 +01:00
unwind-libdw.h perf callchain: Add order support for libdw DWARF unwinder 2015-11-23 18:31:13 -03:00
unwind-libunwind-local.c perf report: Fix off-by-one for non-activation frames 2018-04-13 19:48:05 +02:00
unwind-libunwind.c perf unwind: Add initialized arg into unwind__prepare_access 2016-07-04 20:27:12 -03:00
unwind.h perf unwind: Add initialized arg into unwind__prepare_access 2016-07-04 20:27:12 -03:00
usage.c perf tools: Simplify die() mechanism 2016-03-23 12:32:31 -03:00
util.c perf tools: Fix copyfile_offset update of output offset 2018-04-13 19:48:31 +02:00
util.h perf tools: No need to include bitops.h in util.h 2019-05-31 06:48:13 -07:00
values.c
values.h
vdso.c perf tools: Find right DSO taking into account if binary is 32 or 64-bit 2016-06-23 10:25:58 -03:00
vdso.h
xyarray.c
xyarray.h
zlib.c