Messages in this thread Patch in this message | | | Date | Thu, 19 Mar 2020 14:10:45 -0000 | From | "tip-bot2 for Arnaldo Carvalho de Melo" <> | Subject | [tip: perf/core] perf map: Use strstarts() to look for Android libraries |
| |
The following commit has been merged into the perf/core branch of tip:
Commit-ID: bdadd647cbf7b6e7f5d5891bd4e711292793cf23 Gitweb: https://git.kernel.org/tip/bdadd647cbf7b6e7f5d5891bd4e711292793cf23 Author: Arnaldo Carvalho de Melo <acme@redhat.com> AuthorDate: Mon, 09 Mar 2020 16:53:41 -03:00 Committer: Arnaldo Carvalho de Melo <acme@redhat.com> CommitterDate: Wed, 11 Mar 2020 10:48:44 -03:00
perf map: Use strstarts() to look for Android libraries
And add the '/' to avoid looking at things like "/system/libsomething", when all we want to know if it is like "/system/lib/something", i.e. if it is in that system library dir.
Using strstarts() avoids off-by-one errors like recently fixed in this file.
Since this adds the '/' I separated this patch, another patch will make this consistent by removing other strncmp(str, prefix, manually calculated prefix length) usage.
Reported-by: Dominik Czarnota <dominik.b.czarnota@gmail.com> Acked-by: Dominik Czarnota <dominik.b.czarnota@gmail.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Link: Link: http://lore.kernel.org/lkml/CABEVAa0_q-uC0vrrqpkqRHy_9RLOSXOJxizMLm1n5faHRy2AeA@mail.gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> --- tools/perf/util/map.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c index b342f74..53d9661 100644 --- a/tools/perf/util/map.c +++ b/tools/perf/util/map.c @@ -44,8 +44,8 @@ static inline int is_no_dso_memory(const char *filename) static inline int is_android_lib(const char *filename) { - return !strncmp(filename, "/data/app-lib", 13) || - !strncmp(filename, "/system/lib", 11); + return strstarts(filename, "/data/app-lib/") || + strstarts(filename, "/system/lib/"); } static inline bool replace_android_lib(const char *filename, char *newfilename) @@ -65,7 +65,7 @@ static inline bool replace_android_lib(const char *filename, char *newfilename) app_abi_length = strlen(app_abi); - if (!strncmp(filename, "/data/app-lib", 13)) { + if (strstarts(filename, "/data/app-lib/")) { char *apk_path; if (!app_abi_length) @@ -89,7 +89,7 @@ static inline bool replace_android_lib(const char *filename, char *newfilename) return true; } - if (!strncmp(filename, "/system/lib/", 12)) { + if (strstarts(filename, "/system/lib/")) { char *ndk, *app; const char *arch; size_t ndk_length;
| |