unconditionally define PGRP_PIPE; fix wait in funsubs; fix REPLY as nameref in varsub; fix crash with parse errors in compound assignments

This commit is contained in:
Chet Ramey
2024-01-14 15:38:36 -05:00
parent 584a2b4c9e
commit f2fdb5e313
14 changed files with 125 additions and 154 deletions
+1 -1
View File
@@ -109,7 +109,7 @@ sh_stat (const char *path, struct stat *finfo)
effectively a no-op. */
pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
strcpy (pbuf, DEV_FD_PREFIX);
strcat (pbuf, path + 8);
strcpy (pbuf + sizeof (DEV_FD_PREFIX) - 1, path + 8);
return (stat (pbuf, finfo));
#endif /* !HAVE_DEV_FD */
}
+5 -5
View File
@@ -169,7 +169,7 @@ sh_mktmpname (const char *nameroot, int flags)
if (flags & MT_TEMPLATE)
strcpy (filename, nameroot);
else
sprintf (filename, "%s/%s.XXXXXX", tdir, lroot);
snprintf (filename, PATH_MAX, "%s/%s.XXXXXX", tdir, lroot);
if (mktemp (filename) == 0)
{
free (filename);
@@ -191,7 +191,7 @@ sh_mktmpname (const char *nameroot, int flags)
(unsigned long) time ((time_t *)0) ^
(unsigned long) dollar_dollar_pid ^
x;
sprintf (filename, "%s/%s-%lu", tdir, lroot, filenum);
snprintf (filename, PATH_MAX, "%s/%s-%lu", tdir, lroot, filenum);
if (tmpnamelen > 0 && tmpnamelen < 32) /* XXX */
filename[tdlen + 1 + tmpnamelen] = '\0';
# ifdef HAVE_LSTAT
@@ -229,7 +229,7 @@ sh_mktmpfd (const char *nameroot, int flags, char **namep)
if (flags & MT_TEMPLATE)
strcpy (filename, nameroot);
else
sprintf (filename, "%s/%s.XXXXXX", tdir, lroot);
snprintf (filename, PATH_MAX, "%s/%s.XXXXXX", tdir, lroot);
fd = mkstemp (filename);
if ((flags & MT_UNLINK) && tmpunlink (filename) < 0)
{
@@ -263,7 +263,7 @@ sh_mktmpfd (const char *nameroot, int flags, char **namep)
(unsigned long) time ((time_t *)0) ^
(unsigned long) dollar_dollar_pid ^
x;
sprintf (filename, "%s/%s-%lu", tdir, lroot, filenum);
snprintf (filename, PATH_MAX, "%s/%s-%lu", tdir, lroot, filenum);
if (tmpnamelen > 0 && tmpnamelen < 32) /* XXX */
filename[tdlen + 1 + tmpnamelen] = '\0';
fd = open (filename, BASEOPENFLAGS | ((flags & MT_READWRITE) ? O_RDWR : O_WRONLY), 0600);
@@ -329,7 +329,7 @@ sh_mktmpdir (const char *nameroot, int flags)
if (flags & MT_TEMPLATE)
strcpy (filename, nameroot);
else
sprintf (filename, "%s/%s.XXXXXX", tdir, lroot);
snprintf (filename, PATH_MAX, "%s/%s.XXXXXX", tdir, lroot);
dirname = mkdtemp (filename);
if (dirname == 0)
{