aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-04-25 17:54:03 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-10-09 17:48:41 -0300
commitdb8cbc6a7a435209dd04706cf43c3785baf2e326 (patch)
tree927479da9b3c9b8fb7d0c21b65a5b97eb3cda9cf /ChangeLog
parentedcda4c08ac033f40a91cb4def2fd0fa35a760ca (diff)
downloadglibc-db8cbc6a7a435209dd04706cf43c3785baf2e326.zip
glibc-db8cbc6a7a435209dd04706cf43c3785baf2e326.tar.gz
glibc-db8cbc6a7a435209dd04706cf43c3785baf2e326.tar.bz2
posix: Use posix_spawn for wordexp
This patch replaces the fork+exec by posix_spawn on wordexp, which allows a better scability on Linux and simplifies the thread cancellation handling. The only change which can not be implemented with posix_spawn the /dev/null check to certify it is indeed the expected device. I am not sure how effetive this check is since /dev/null tampering means something very wrong with the system and this is the least of the issues. My view is the tests is really out of the place and the hardening provided is minimum. If the idea is still to provide such check, I think a possibilty would be to open /dev/null, check it, add a dup2 file action, and close the file descriptor. Checked on powerpc64le-linux-gnu and x86_64-linux-gnu. * include/spawn.h (__posix_spawn_file_actions_addopen): New prototype. * posix/spawn_faction_addopen.c (posix_spawn_file_actions_addopen): Add internal alias. * posix/wordexp.c (create_environment, free_environment): New functions. (exec_comm_child, exec_comm): Use posix_spawn instead of fork+exec. * posix/wordexp-test.c: Use libsupport.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog9
1 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d4f418..2e34b2d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2019-10-09 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+ * include/spawn.h (__posix_spawn_file_actions_addopen): New
+ prototype.
+ * posix/spawn_faction_addopen.c (posix_spawn_file_actions_addopen):
+ Add internal alias.
+ * posix/wordexp.c (create_environment, free_environment): New
+ functions.
+ (exec_comm_child, exec_comm): Use posix_spawn instead of fork+exec.
+ * posix/wordexp-test.c: Use libsupport.
+
* sysdeps/unix/sysv/linux/mips/mips64/getdents64.c (__getdents64):
Add small optimization for older kernel to avoid issuing
__NR_getdents64 on each call and replace scratch_buffer usage with