When setting environment variables in the atrun script, use the

"export foo=bar" form instead of "foo=bar; export foo" since the
former allows the shell to catch variable names that are not valid
shell identifiers.  This will cause /bin/sh to exit with an error
(which gets mailed to the at user) and it will not run the script.

Obtained from:	OpenBSD (r1.63 millert)
MFC after:	3 days
This commit is contained in:
Xin LI 2014-09-29 21:45:57 +00:00
parent cf3c0c32d2
commit da9c3bbbee
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=272288

View File

@ -367,6 +367,7 @@ writefile(time_t runtimer, char queue)
if (export)
{
(void)fputs("export ", fp);
fwrite(*atenv, sizeof(char), eqp-*atenv, fp);
for(ap = eqp;*ap != '\0'; ap++)
{
@ -389,7 +390,6 @@ writefile(time_t runtimer, char queue)
fputc(*ap, fp);
}
}
fputs("; export ", fp);
fwrite(*atenv, sizeof(char), eqp-*atenv -1, fp);
fputc('\n', fp);