#define PWDCMDSW 11
{ "pwd", 0 },
#define LSCMDSW 12
- { "ls", 0 },
+ { "ls", 2 },
#define ATTACHCMDSW 13
{ "attach", 0 },
#define DETACHCMDSW 14
*/
if (*(argp+1) == (char *)0) {
- (void)sprintf(buf, "$SHELL -c \"cd;pwd\"");
+ (void)sprintf(buf, "$SHELL -c \"cd&&pwd\"");
}
else {
writesomecmd(buf, BUFSIZ, "cd", "pwd", argp);
* new C99 mandated 'number of chars that would have been written'
*/
/* length checks here and inside the loop allow for the
- * trailing ';', trailcmd, '"' and NUL
+ * trailing "&&", trailcmd, '"' and NUL
*/
- int trailln = strlen(trailcmd) + 3;
+ int trailln = strlen(trailcmd) + 4;
if (ln < 0 || ln + trailln > bufsz)
adios((char *)0, "arguments too long");
cp += ln;
}
if (*trailcmd) {
- *cp++ = ';';
+ *cp++ = '&'; *cp++ = '&';
strcpy(cp, trailcmd);
- cp += trailln - 3;
+ cp += trailln - 4;
}
*cp++ = '"';
*cp = 0;
{
char olddir[BUFSIZ];
int r;
+
+ /* ensure that $SHELL exists, as the cmd was written relying on
+ a non-blank $SHELL... */
+ setenv("SHELL","/bin/sh",0); /* don't overwrite */
+
if (getcwd(olddir, sizeof(olddir)) == 0)
adios("getcwd", "could not get working directory");
if (chdir(dir) != 0)
{
char olddir[BUFSIZ];
FILE *f;
+
+ /* ensure that $SHELL exists, as the cmd was written relying on
+ a non-blank $SHELL... */
+ setenv("SHELL","/bin/sh",0); /* don't overwrite */
+
if (getcwd(olddir, sizeof(olddir)) == 0)
adios("getcwd", "could not get working directory");
if (chdir(dir) != 0)
{ "tls", TLSminc(-3) },
#define NTLSSW 46
{ "notls", TLSminc(-5) },
+#define MTSSW 47
+ { "mts smtp|sendmail/smtp|sendmail/pipe", 2 },
+#define MESSAGEIDSW 48
+ { "messageid localname|random", 2 },
{ NULL, 0 }
};
case SASLMECHSW:
case USERSW:
case PORTSW:
+ case MTSSW:
+ case MESSAGEIDSW:
vec[vecp++] = --cp;
if (!(cp = *argp++) || *cp == '-') {
advise (NULL, "missing argument to %s", argp[-2]);