Commit graph

18791 commits

Author SHA1 Message Date
Elliott Hughes
c508de0e41 Use sysinfo(2) to implement more of <sys/sysinfo.h>.
We already had implementations of some of the functions, and I didn't
bother rewriting them when we added sysinfo(2). Ross Anderson said in
https://www.lightbluetouchpaper.org/2016/07/29/yet-another-android-side-channel/
that we should "simply disable access to all procfs files", which made
me curious how many places we use /proc in bionic. This is the one that's
obviously unnecessary. The others I'm not aware of alternative APIs for.

Change-Id: Ia64f36b76f29a7a1dd67845270a5472e121aae10
2016-08-11 14:51:31 -07:00
Dimitry Ivanov
6b94ab9724 Merge "linker: use stat(2) to check file existence"
am: c623e7efc9

Change-Id: I05b28d10a1183f8ee4e7c711f6efc68cc4556326
2016-08-11 19:59:40 +00:00
Dimitry Ivanov
c623e7efc9 Merge "linker: use stat(2) to check file existence" 2016-08-11 19:53:02 +00:00
Dimitry Ivanov
4cf7024db7 linker: use stat(2) to check file existence
open(2) can be used to open directories; use stat to
check that the file exists and is a regular file.

Addresses review comments for 5aa67675f8

Bug: http://b/30320104
Change-Id: Ia944db2f2f779a87ea01dd41dcd171e59c9bef01
2016-08-11 11:11:52 -07:00
Dimitry Ivanov
2fa91f4df8 Merge "linker_asan: Translate absolute dlopen paths to use asan-libraries."
am: cea35d77a2

Change-Id: I54283bd5694b0480ced971d4602c91f8f18c18d7
2016-08-11 17:44:01 +00:00
Treehugger Robot
cea35d77a2 Merge "linker_asan: Translate absolute dlopen paths to use asan-libraries." 2016-08-11 17:38:07 +00:00
Dimitry Ivanov
45d25ca728 linker_asan: Translate absolute dlopen paths to use asan-libraries.
This patch enables absolute path translation to instrumented library
when linker_asan is in use.

Test: adb shell cat /proc/<rlid pid>/maps | grep libril-qc-qmi-1.so
      check that it is mapped from /data/vendor/lib64 and not /vendor/lib64
Bug: http://b/30320104
Change-Id: I3bc24754b192afc0a72d6f3801f7b42141ce715b
(cherry picked from commit 5aa67675f8)
2016-08-10 21:37:50 -07:00
Dan Albert
bcb80b2b18 Merge "Add ndk_library for libdl."
am: 4519a4d182

Change-Id: I6648c5c60d59b8002433b5157d452460d50065b5
2016-08-11 01:37:37 +00:00
Josh Gao
4aa98a3d3f Merge "Add __attribute__((sentinel)) tags to execl and friends."
am: 32a2e137a5

Change-Id: I9edad7b6fa639012f6a94501a33bdbc70540cd77
2016-08-11 01:35:11 +00:00
Treehugger Robot
4519a4d182 Merge "Add ndk_library for libdl." 2016-08-11 01:33:31 +00:00
Treehugger Robot
32a2e137a5 Merge "Add __attribute__((sentinel)) tags to execl and friends." 2016-08-11 01:19:23 +00:00
Dimitry Ivanov
62ad07d253 Merge "Check alignment along with range of mapped file fragments"
am: 3e35b26704

Change-Id: I6d81b0ca1903c466ba1420671ff700a4c0a1b0d8
2016-08-11 01:03:04 +00:00
Treehugger Robot
3e35b26704 Merge "Check alignment along with range of mapped file fragments" 2016-08-11 00:46:33 +00:00
Elliott Hughes
fdcf8ed651 Merge "Move brillo closer to Android."
am: 299e501419

Change-Id: I0a0136336bfe75532d4c37fb6242a80b293702ca
2016-08-11 00:11:33 +00:00
Elliott Hughes
4fe10a4c89 Merge "Remove __static_cast macro from <sys/cdefs.h>."
am: 18af5bfa5d

Change-Id: If2188445e057543a7bdc3530c60697197a90f623
2016-08-11 00:11:31 +00:00
Treehugger Robot
299e501419 Merge "Move brillo closer to Android." 2016-08-10 23:59:19 +00:00
Treehugger Robot
18af5bfa5d Merge "Remove __static_cast macro from <sys/cdefs.h>." 2016-08-10 23:58:12 +00:00
Elliott Hughes
38dba2e7e1 Fix sysconf(_SC_ARG_MAX).
ARG_MAX hasn't been a constant since Linux 2.6.23.

Bug: http://lists.landley.net/pipermail/toybox-landley.net/2016-August/008592.html
Change-Id: I1eddb562751604c75b89fa610d79be0655c53693
Test: ran the bionic tests on device and against glibc
2016-08-10 15:51:06 -07:00
Josh Gao
d80a52eb65 Add __attribute__((sentinel)) tags to execl and friends.
Give a compile time diagnostic when the nullptr sentinel is missing
from an execl family call, instead of just pulling arbitrary values.

Bug: http://b/30793878
Change-Id: I1c49005c58b7ad4a5b04f0435b722d4c744e8f0e
Test: Built bullhead
2016-08-10 15:26:41 -07:00
Elliott Hughes
732a173505 Merge "Fortify vsnprintf in more cases."
am: af211ab23f

Change-Id: Iccd96387222637d1a4c8eed4507ad8b5d21a16fb
2016-08-10 21:26:50 +00:00
Elliott Hughes
d1dd7c58b4 Remove __static_cast macro from <sys/cdefs.h>.
We don't use it, and we added the more general __BIONIC_CAST anyway.

Change-Id: I2cb8a108b58bb2cb24ed2b1890d9efed671196dc
2016-08-10 14:18:01 -07:00
Elliott Hughes
af211ab23f Merge "Fortify vsnprintf in more cases." 2016-08-10 21:11:10 +00:00
Elliott Hughes
5ffed9b856 Move brillo closer to Android.
Hiding our legacy cruft seemed like a good idea, but in practice it will only
mean worse interoperability.

Plus we got it wrong, as the recent `putw` example showed.

Change-Id: I167c7168eff133889028089c22a7a0dfb8d6d0cf
2016-08-10 14:08:31 -07:00
Elliott Hughes
fb3873d4db Fortify vsnprintf in more cases.
Bug: http://b/30445072
Change-Id: I1893890f0e3b56533eef053eda1bd96a0b9a5119
2016-08-10 11:50:12 -07:00
Dimitry Ivanov
bd90675111 Check alignment along with range of mapped file fragments
Improve sanity-checks of elf-file by adding alignment check
of mapped sections and section headers.

Bug: http://b/30687964
Change-Id: I7f06ddaa56a13989ce7be847b3a73c352e32c008
(cherry picked from commit 7e2d49ae3e)
2016-08-10 10:52:55 -07:00
Elliott Hughes
b9243aa868 Merge "Remove more stdio copy/paste."
am: f5042cab10

Change-Id: Iba5e72719d3cb0c7eac85dc83d1ba49a05fcdc78
2016-08-10 00:49:38 +00:00
Treehugger Robot
f5042cab10 Merge "Remove more stdio copy/paste." 2016-08-10 00:43:39 +00:00
Elliott Hughes
53cf348c82 Remove more stdio copy/paste.
Change-Id: Ia92629b75d2c153ecf1cec711e2f9575eef604ab
2016-08-09 16:27:23 -07:00
Dimitry Ivanov
430c64f8d1 Merge "linker: fix mips build"
am: ce11d26bd7

Change-Id: Ic61331efa9e3b721febbf8794b22458c740bacc5
2016-08-09 15:27:00 +00:00
Treehugger Robot
ce11d26bd7 Merge "linker: fix mips build" 2016-08-09 15:20:38 +00:00
Dimitry Ivanov
576a375bc2 linker: fix mips build
Change-Id: I88c5ba7f33825ae9b36992b32d30579ec4a66915
Test: lunch aosp_mips-eng && mm
2016-08-09 06:58:55 -07:00
Josh Gao
f84421c284 Merge "Don't use the same declaration to declare multiple symbol names."
am: dcc8feb696

Change-Id: Id21d01cd69f714cdf396f5fd82df175f39eace73
2016-08-09 01:08:40 +00:00
Treehugger Robot
dcc8feb696 Merge "Don't use the same declaration to declare multiple symbol names." 2016-08-09 00:57:32 +00:00
Dimitry Ivanov
f24a92d7b1 Merge changes I868417f4,I57ac3667
am: 8336b64442

Change-Id: Iea2d44645bc33c1d4564bd7ef8e3f8c73c0b20cb
2016-08-09 00:37:41 +00:00
Treehugger Robot
8336b64442 Merge changes I868417f4,I57ac3667
* changes:
  Extract soinfo and globals to separate files.
  Move android_namespace_t to a separate file.
2016-08-09 00:31:46 +00:00
Josh Gao
f8592a3ff3 versioner: add support for preprocessing headers.
Bug: http://b/30170081
Change-Id: I9b662ca9e0fa3a1f9c0211594e851f5f9bef7266
2016-08-08 16:39:07 -07:00
Josh Gao
8a03c83ef8 Don't use the same declaration to declare multiple symbol names.
This doesn't play well with preprocessing.

Bug: http://b/30170081
Change-Id: Id7fc648113336dcccdfa0a6b108f3d452aaf1ed2
2016-08-08 16:39:07 -07:00
Josh Gao
8feba83242 versioner: fix makefiles.
Move the Android.mk to src/ so that mm in that directory works.
Also, remove the dependency on FORCE_BUILD_LLVM_COMPONENTS.

Change-Id: Iad7f3fc96f5f26f9535141d752ba865b40d5ff7e
2016-08-08 16:39:07 -07:00
Josh Gao
566735df35 versioner: purge iostreams.
Change-Id: I1b16a4b5c4a8a1333f05636c8c67890d8ce1a090
2016-08-08 16:39:07 -07:00
Josh Gao
16057886d7 versioner: assorted fixes.
Zero initialize the contents of ArchMap, keep track of the symbol name
in Declaration, remove unnecessary copies in loops.

Change-Id: I47b07755846f252b83ffc4c89547a34b2f7ab868
2016-08-08 16:39:07 -07:00
Josh Gao
bfb6bae9fb versioner: replace availability attributes with annotate.
Major refactor to use __attribute__((annotate)) to be able to keep
track of the semantic differences between __INTRODUCED_IN(x) and
__INTRODUCED_IN_X86(x), for use in the upcoming preprocessor.

Bug: http://b/30170081
Change-Id: I6496a8c40ba7f4553de9a2be0bbddcf37c813937
2016-08-08 16:39:07 -07:00
Josh Gao
681f6b59d2 versioner: improve the test script.
Make it actually run under python3, and add checking for unexpected
success.

Change-Id: I9aac0e8cc1526fd63db21e57554f3aa5a9b4091d
2016-08-08 16:39:07 -07:00
Elliott Hughes
64ac8e6ea2 Merge "Update NOTICE files."
am: 6ba5f07e3f

Change-Id: I065305f4376e7a10d014cd3bb38fb2a16ee71fd0
2016-08-08 23:29:33 +00:00
Dimitry Ivanov
48ec288d40 Extract soinfo and globals to separate files.
Move soinfo and globals out of linker.cpp to
separate files.

Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker

(refactoring part 2 of many)

Change-Id: I868417f4b8d2b84d0e8265e354bc7977161497e2
2016-08-08 16:12:53 -07:00
Dimitry Ivanov
b943f303a2 Move android_namespace_t to a separate file.
Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker

(refactoring part 1 of many)

Change-Id: I57ac36677a815800dc127c8c45c3ea806c37e247
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
2016-08-08 16:12:52 -07:00
Elliott Hughes
6ba5f07e3f Merge "Update NOTICE files." 2016-08-08 23:04:02 +00:00
Elliott Hughes
77a3e28e2e Update NOTICE files.
Change-Id: I591dc91b54804aebc05ba6f9974ef9add660ecfe
2016-08-08 12:39:56 -07:00
Dan Albert
c507eed798 Merge "Guard fortify inlines with __ANDROID_API__."
am: 4b10751310

Change-Id: Ic1bf224c91a3071f3210460b06c4bcdc40b2033a
2016-08-06 01:35:28 +00:00
Treehugger Robot
4b10751310 Merge "Guard fortify inlines with __ANDROID_API__." 2016-08-06 01:31:18 +00:00
Elliott Hughes
6d0c5d096b Merge "Reimplement remove(3) without the lstat(2)."
am: 7e93d9c675

Change-Id: I1fcebf903e32eb7f279ce0c5a0c3b2e2129df2c1
2016-08-06 01:15:56 +00:00