/* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004-2024 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
You should have received a copy of the GNU Library General Public
License along with libiberty; see the file COPYING.LIB. If not,
-write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
/* pexecute is an old routine. This implementation uses the newer
pex_init/pex_run/pex_get_status/pex_free routines. Don't use
{
if (pex != NULL)
{
- *errmsg_fmt = "pexecute already in progress";
+ *errmsg_fmt = (char *) "pexecute already in progress";
*errmsg_arg = NULL;
return -1;
}
{
if (pex == NULL)
{
- *errmsg_fmt = "pexecute not in progress";
+ *errmsg_fmt = (char *) "pexecute not in progress";
*errmsg_arg = NULL;
return -1;
}
{
int *vector;
- vector = xmalloc (idx * sizeof (int));
+ vector = XNEWVEC (int, idx);
if (!pex_get_status (pex, idx, vector))
- return -1;
+ {
+ free (vector);
+ return -1;
+ }
*status = vector[pid];
free (vector);
}