int trailln = strlen(trailcmd) + 4;
if (ln < 0 || ln + trailln > bufsz)
adios((char *)0, "arguments too long");
-
+
cp = buf + ln;
-
- while (*++argp != (char *)0) {
+
+ while (*argp && *++argp) {
ln = strlen(*argp);
/* +1 for leading space */
if (ln + trailln + 1 > bufsz - (cp-buf))
/* 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)
advise (NULL, "unable to fork, so sending directly...");
case OK:
vec = argsplit(sendproc, &program, &vecp);
- vec[vecp++] = invo_name;
if (pushsw)
vec[vecp++] = "-push";
if (arg)
X("attachformat", 7, SNDATTACHFORMAT) \
X("port server-port-name/number", 4, PORTSW) \
X("tls", TLSminc(-3), TLSSW) \
+ X("initialtls", TLSminc(-10), INITTLSSW) \
X("notls", TLSminc(-5), NTLSSW) \
X("mts smtp|sendmail/smtp|sendmail/pipe", 2, MTSSW) \
X("messageid localname|random", 2, MESSAGEIDSW) \
case SASLSW:
case NOSASLSW:
case TLSSW:
+ case INITTLSSW:
case NTLSSW:
vec[vecp++] = --cp;
continue;
case OK:
vec = argsplit(whomproc, &program, &vecp);
- vec[vecp++] = r1bindex (whomproc, '/');
vec[vecp++] = file;
if (arg)
while (*arg)