public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-9072] libiberty: Fix error return value in pex_unix_exec_child [PR113957].
@ 2024-02-19 20:14 Iain D Sandoe
  0 siblings, 0 replies; only message in thread
From: Iain D Sandoe @ 2024-02-19 20:14 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:20e57660e64eab7c9ef0f2dd25f3088835f8f44f

commit r14-9072-g20e57660e64eab7c9ef0f2dd25f3088835f8f44f
Author: Iain Sandoe <iain@sandoe.co.uk>
Date:   Fri Feb 16 14:42:53 2024 +0000

    libiberty: Fix error return value in pex_unix_exec_child [PR113957].
    
    r14-5310-g879cf9ff45d940 introduced some new handling for spawning sub
    processes.  The return value from the generic exec_child is examined
    and needs to be < 0 to signal an error. However, the unix flavour of
    this routine is returning the PID value set from the posix_spawn{p}.
    
    This latter value is undefined per the manual pages for both Darwin
    and Linux, and it seems Darwin, at least, sets the value to some
    usually positive number (presumably the PID that would have been used
    if the fork had succeeded).
    
    The fix proposed here is to set the pid = -1 in the relevant error
    paths.
    
            PR other/113957
    
    libiberty/ChangeLog:
    
            * pex-unix.c (pex_unix_exec_child): Set pid = -1 in the error
            paths, since that is used to signal an erroneous outcome for
            the routine.
    
    Signed-off-by: Iain Sandoe <iain@sandoe.co.uk>

Diff:
---
 libiberty/pex-unix.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c
index af98062a94cd..f3a1cc95adac 100644
--- a/libiberty/pex-unix.c
+++ b/libiberty/pex-unix.c
@@ -695,6 +695,7 @@ pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
 	{
 	  *err = ret;
 	  *errmsg = "posix_spawnp";
+	  pid = -1; /* The value of pid is unspecified on failure.  */
 	  goto exit;
 	}
     }
@@ -705,6 +706,7 @@ pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
 	{
 	  *err = ret;
 	  *errmsg = "posix_spawn";
+	  pid = -1;
 	  goto exit;
 	}
     }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-02-19 20:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-19 20:14 [gcc r14-9072] libiberty: Fix error return value in pex_unix_exec_child [PR113957] Iain D Sandoe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).