summaryrefslogtreecommitdiffstats
path: root/linker/linker.cpp
diff options
context:
space:
mode:
authorDmitriy Ivanov <dimitry@google.com>2015-06-09 13:46:51 -0700
committerDmitriy Ivanov <dimitry@google.com>2015-06-09 13:47:46 -0700
commit524f1f1efe0cb32714c61e26f21701ac952b9e42 (patch)
treef10f90656194ba8557626413fc6e16bc88fc41f0 /linker/linker.cpp
parent26e663d4796e74fc40a62b3d2a438b726bbb056e (diff)
downloadbionic-524f1f1efe0cb32714c61e26f21701ac952b9e42.tar.gz
bionic-524f1f1efe0cb32714c61e26f21701ac952b9e42.tar.bz2
bionic-524f1f1efe0cb32714c61e26f21701ac952b9e42.zip
Make path to apk compliant with jar url format
Bug: http://b/21726698 Bug: http://b/8076853 Change-Id: I8c1942a98fe3119746b4dc9f60a7ff215ea7009c
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r--linker/linker.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 5aabacc7f..ce57b281b 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1096,11 +1096,11 @@ static int open_library_in_zipfile(const char* const path,
off64_t* file_offset) {
TRACE("Trying zip file open from path '%s'", path);
- // Treat an '!' character inside a path as the separator between the name
+ // Treat an '!/' separator inside a path as the separator between the name
// of the zip file on disk and the subdirectory to search within it.
- // For example, if path is "foo.zip!bar/bas/x.so", then we search for
+ // For example, if path is "foo.zip!/bar/bas/x.so", then we search for
// "bar/bas/x.so" within "foo.zip".
- const char* separator = strchr(path, '!');
+ const char* separator = strstr(path, "!/");
if (separator == nullptr) {
return -1;
}
@@ -1114,7 +1114,7 @@ static int open_library_in_zipfile(const char* const path,
buf[separator - path] = '\0';
const char* zip_path = buf;
- const char* file_path = &buf[separator - path + 1];
+ const char* file_path = &buf[separator - path + 2];
int fd = TEMP_FAILURE_RETRY(open(zip_path, O_RDONLY | O_CLOEXEC));
if (fd == -1) {
return -1;