* strace.c (startup_child): initgroups is unsafe in a vfork child
because it parses /etc/group.  Unfortunately it's not obvious what to
do instead.

Signed-off-by: Jamie Lokier <ja...@shareable.org>
---
 strace.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/strace.c b/strace.c
index 40f8907..726738b 100644
--- a/strace.c
+++ b/strace.c
@@ -620,7 +620,9 @@ startup_child (char **argv)
                         * lose privileges on setuid.
                         */
                        if (username != NULL) {
-                               if (initgroups(username, run_gid) < 0) {
+                               /* initgroups is not safe in a vfork child. */
+                               if (!strace_vforked
+                                   && initgroups(username, run_gid) < 0) {
                                        perror("initgroups");
                                        exit(1);
                                }
-- 
1.7.0.4

_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to