Commit graph

18712 commits

Author SHA1 Message Date
Elliott Hughes
6395a3047a Merge "Fix execvp/execvpe behavior with absolute paths and ENOEXEC." 2016-08-26 16:14:52 +00:00
Treehugger Robot
a1e5972278 Merge "linker: stat /proc/self/exe instead of executable_path" 2016-08-26 04:32:54 +00:00
Dimitry Ivanov
f4e3ebe1e3 linker: stat /proc/self/exe instead of executable_path
The absolute path to an executable may no longer be valid for
example when the file is unlinked immediately after exec.
Using /proc/self/exe instead of absolute path solves this problem.

Bug: http://b/31084669
Test: Run the app from http://b/31084669 make sure executable starts
Test: by checking ps and /proc/<pid>/exe
Change-Id: I5c819f39ef0fc4fc71b05de71e8af9ede611f04c
(cherry picked from commit 7da4bbbe87)
2016-08-25 19:41:23 -07:00
Treehugger Robot
0e99e40892 Merge "Switch back to the BSD exec for now." 2016-08-26 01:44:29 +00:00
Elliott Hughes
63615066d9 Fix execvp/execvpe behavior with absolute paths and ENOEXEC.
Bug: http://b/31091962
Change-Id: Id0b3d41868f5e3ed1ccf618bfefb46609367bc9a
2016-08-25 17:40:27 -07:00
Elliott Hughes
18c31d7f4c Switch back to the BSD exec for now.
Bug: http://b/31091962
Change-Id: Ia155c4aa0d6db7b91d7486433c3c01a841b0e509
2016-08-25 17:25:31 -07:00
Elliott Hughes
e1d792b10c Merge "Fix execvpe ENOEXEC behavior." 2016-08-25 16:18:24 +00:00
Elliott Hughes
3c1159024c Fix execvpe ENOEXEC behavior.
The special case for absolute paths wasn't handling ENOEXEC.

Also add more extensive tests for execvpe.

Also switch to manually doing the fork in ExecTestHelper::Run because
ASSERT_EXIT doesn't actually return, meaning we were only running the
first part of each test.

Bug: http://b/31073104
Change-Id: I7a4640afc6d290c51ba2e66fc1b9bb6b0fc174f7
2016-08-24 22:56:52 -07:00
Treehugger Robot
fac56897f8 Merge "Rewrite the exec family." 2016-08-24 21:21:43 +00:00
Elliott Hughes
1b40aafe3f Rewrite the exec family.
* Removes duplication.
* Removes fixed PATH_MAX limit.
* Adds basic tests.

Bug: http://b/30032507
Change-Id: I4087a9de3e53884ac3297ebafbec4e6f8a9871b6
2016-08-24 13:03:04 -07:00
Dimitry Ivanov
e8cce1aa09 Merge "Don't warn about DT_FLAGS_1 containing DF_1_PIE"
am: 42d24ca818

Change-Id: I10e5d9f9c06592fb6e11ce2766afd665c66d185e
2016-08-22 20:43:31 +00:00
Dimitry Ivanov
42d24ca818 Merge "Don't warn about DT_FLAGS_1 containing DF_1_PIE" 2016-08-22 20:31:16 +00:00
Bernhard Rosenkränzer
59ba65e086 Don't warn about DT_FLAGS_1 containing DF_1_PIE
DF_1_PIE is set in PIE code built with gcc 6.x. The flag is purely
informational and the linker doesn't need to do anything about it,
so Bionic handles it correctly - no need to warn.

Change-Id: If99c1742fe22f8842a84818909ed961716ef5ca5
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2016-08-19 21:57:12 +02:00
Elliott Hughes
723a2e6d78 Merge "Fix mips build."
am: 685ed4467c

Change-Id: If3bc475a3397c79ba1b7583110eb92b3c1ff8ba7
2016-08-19 02:44:09 +00:00
Treehugger Robot
685ed4467c Merge "Fix mips build." 2016-08-19 02:40:21 +00:00
Elliott Hughes
1878ea08de Fix mips build.
Tests still pass on arm/aarch64/x86/x86-64.

Change-Id: I6a17b5bca356dbc7273b5427c68d538c0dd6deed
2016-08-18 18:25:07 -07:00
Elliott Hughes
a0a3a8c3b6 Merge "Flesh out <sys/msg.h>, <sys/sem.h>, <sys/shm.h>."
am: 7d4e28a486

Change-Id: Idbf296a5a4342b4a9816f6cd3a4db896a80854a5
2016-08-19 00:03:27 +00:00
Elliott Hughes
7d4e28a486 Merge "Flesh out <sys/msg.h>, <sys/sem.h>, <sys/shm.h>." 2016-08-18 23:58:43 +00:00
Elliott Hughes
7c59f3f6f3 Flesh out <sys/msg.h>, <sys/sem.h>, <sys/shm.h>.
Also fix <sys/ipc.h>.

Not useful except to systems/bringup folks for testing. Trivial tests
added, and double-checked under strace to see that things look right.

x86 -- which works differently to everything else -- tested on the host.

Bug: http://b/27952303
Change-Id: I328534e994ae9e90755f545478fba03038c0bb94
2016-08-18 15:23:38 -07:00
Dimitry Ivanov
2223d5bb1c Merge "[mips] Add missing linker shdr tests"
am: fc9958ce76

Change-Id: I621c6e98dac498e12552281b87374a7ba4578e71
2016-08-17 19:00:02 +00:00
Dimitry Ivanov
fc9958ce76 Merge "[mips] Add missing linker shdr tests" 2016-08-17 18:29:52 +00:00
Elliott Hughes
4321522b66 Merge "Be more restrictive about max frame size."
am: a6b73d36ef

Change-Id: I635cae0c7147aad3d6e6a36e889ddc90e1db44d6
2016-08-17 17:39:57 +00:00
Treehugger Robot
a6b73d36ef Merge "Be more restrictive about max frame size." 2016-08-17 17:29:25 +00:00
Elliott Hughes
74600ce304 Merge "Document that our getnameinfo(3) prototype is unfixably wrong."
am: f74eb2609f

Change-Id: Ie9bd6e383ba5143242453a467234d91cb77a04a0
2016-08-17 00:32:50 +00:00
Treehugger Robot
f74eb2609f Merge "Document that our getnameinfo(3) prototype is unfixably wrong." 2016-08-17 00:17:24 +00:00
Elliott Hughes
8e547bde4b Be more restrictive about max frame size.
exec and realpath both have PATH_MAX buffers (which is a bug in its own
right, since PATH_MAX isn't a real limit). The printf/scanf implementation
has a few large functions, and the DNS implementation is a complete 1970s
C nightmare.

Bug: http://b/30032507
Change-Id: I4b9daa552123c16bbe84f0632b2b32eba17a9dbd
2016-08-16 15:57:47 -07:00
Elliott Hughes
5c730feb44 Merge "Add missing <sys/stat.h> macros."
am: fe4ab7dc30

Change-Id: Iebe7bd3970e16796493b2804b11621d744108baa
2016-08-16 22:18:20 +00:00
Elliott Hughes
daf7506af7 Merge "Fix various <sys/socket.h> prototypes."
am: c8476bb7ad

Change-Id: I383ececb2f1757b15c804737dc0ceba6ec80e056
2016-08-16 22:18:17 +00:00
Elliott Hughes
d29747f935 Merge "mprotect and msync take void*, not const void*."
am: 1df81cd177

Change-Id: I41a5ae96481e09a1de238d5cd361f32c65dc1e7c
2016-08-16 22:18:14 +00:00
Elliott Hughes
ecb7611538 Document that our getnameinfo(3) prototype is unfixably wrong.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/getnameinfo.html

We could fix it for LP32, but that's probably just more confusing and
inconvenient.

Change-Id: Ic37c60fe3665a309cc35c89961712b484dbdaa4c
2016-08-16 15:05:57 -07:00
Treehugger Robot
fe4ab7dc30 Merge "Add missing <sys/stat.h> macros." 2016-08-16 21:59:16 +00:00
Treehugger Robot
c8476bb7ad Merge "Fix various <sys/socket.h> prototypes." 2016-08-16 21:57:31 +00:00
Treehugger Robot
1df81cd177 Merge "mprotect and msync take void*, not const void*." 2016-08-16 21:39:21 +00:00
Elliott Hughes
c8d967f0ec Merge "Fix memmem behavior with empty needles."
am: ce8a5b4b9d

Change-Id: I82a48a9fdd872fdb4ced7846a6912a44530bbed1
2016-08-16 21:02:38 +00:00
Dan Albert
6ad89b0d0f Merge "Add a script to update the bionic headers."
am: 061446c2df

Change-Id: I2c98c7fa8a826e84e7835d9eefdb07b1667bcee9
2016-08-16 21:02:36 +00:00
Treehugger Robot
ce8a5b4b9d Merge "Fix memmem behavior with empty needles." 2016-08-16 20:56:54 +00:00
Elliott Hughes
2b9605fec4 Fix various <sys/socket.h> prototypes.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html

Interestingly, recvmmsg/sendmmsg do actually return int, unlike their
recv/recvmsg/sendv/sendvmsg siblings.

The generated assembler stubs don't actually change.

Change-Id: If71cd02431903774de9bbce77fbedf6b03f90c0f
2016-08-16 13:37:24 -07:00
Elliott Hughes
9288761a26 Add missing <sys/stat.h> macros.
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html

Change-Id: I8c31f3a6fae2c4955c5fba3d880a416d03dfafb7
2016-08-16 13:26:35 -07:00
Elliott Hughes
9dff0d05b5 mprotect and msync take void*, not const void*.
http://pubs.opengroup.org/onlinepubs/9699919799/functions/mprotect.html
http://pubs.opengroup.org/onlinepubs/9699919799/functions/msync.html

Change-Id: Ie26195e2e382c1387037c7ee5cd90b3963220328
2016-08-16 13:25:13 -07:00
Elliott Hughes
cae33ade6c Fix memmem behavior with empty needles.
Change-Id: I8b893d80c27b548652d843af9520d7adc8ba8902
2016-08-16 12:28:58 -07:00
Nikola Veljkovic
44a654446e [mips] Add missing linker shdr tests
Test: bionic-unit-tests for mips, mips64.
Change-Id: I8ed5f03df8d129e74fa04be2b203bd113a381888
2016-08-16 18:52:06 +00:00
Treehugger Robot
061446c2df Merge "Add a script to update the bionic headers." 2016-08-16 17:08:46 +00:00
Josh Gao
9bc42a9d20 Merge "versioner: handle _FILE_OFFSET_BITS=64."
am: 8ca3f3116d

Change-Id: I3f2e40e1c00e45b96625dc080ad6fa83b9251980
2016-08-16 01:13:37 +00:00
Treehugger Robot
8ca3f3116d Merge "versioner: handle _FILE_OFFSET_BITS=64." 2016-08-16 01:00:14 +00:00
Josh Gao
a77b3a9464 versioner: handle _FILE_OFFSET_BITS=64.
Compile headers with both -D_FILE_OFFSET_BITS=32 and -D_FILE_OFFSET_BITS=64.

Bug: http://b/30170081
Change-Id: I92651e075cc69bdc1a2581f99892c9a7fdcdb35b
Test: python run_tests.py
2016-08-15 16:43:13 -07:00
Dimitry Ivanov
b500830389 Merge "linker: add test for zeroed out shdr_table_"
am: 3b2d331e77

Change-Id: Ie4923c9f9bfa1221f5aa367c8edb4f7e35ad27c4
2016-08-15 23:28:02 +00:00
Treehugger Robot
3b2d331e77 Merge "linker: add test for zeroed out shdr_table_" 2016-08-15 23:23:26 +00:00
Josh Gao
29114522dc Merge changes Iaf798077,I9080838f,Ia13a8ae2,If0d81b0a,Ie493d8c3
am: 52848b02b3

Change-Id: Iba29e9463d82b0d5ac1298d65aeaf7f900d63ff5
2016-08-15 23:15:28 +00:00
Treehugger Robot
52848b02b3 Merge changes Iaf798077,I9080838f,Ia13a8ae2,If0d81b0a,Ie493d8c3
* changes:
  versioner: add idempotence test that uses the bionic headers.
  versioner: fix off-by-one error in header guard calculation.
  versioner: improve preprocessor tests.
  versioner: always copy over source headers when preprocessing.
  versioner: add test output directories to gitignore.
2016-08-15 22:45:08 +00:00
Dimitry Ivanov
a9e2c78f8a Merge "linker: add test for zero shdr offset"
am: 4154b77285

Change-Id: I3ec2c49314152af0575fdf3a238de2268d733583
2016-08-15 22:09:25 +00:00