X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fslocal.c;h=df0dc7f6524066892a0509ed1dd5228be5e06d44;hp=c3b45e87aaf8b3b7b8a068fa2a675bb28ebf4b00;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=cdb32d069bdcb6fa04ca7e3d87240442665611b0 diff --git a/uip/slocal.c b/uip/slocal.c index c3b45e8..df0dc7f 100644 --- a/uip/slocal.c +++ b/uip/slocal.c @@ -72,6 +72,7 @@ static struct swit switches[] = { { NULL, 0 } }; +char *version=VERSION; static int globbed = 0; /* have we built "vars" table yet? */ static int parsed = 0; /* have we built header field table yet */ @@ -747,10 +748,10 @@ parse(int fd) /* add special entries to lookup table */ if ((p = lookup(hdrs, "source"))) { - p->p_value = getcpy(sender); + p->p_value = mh_xstrdup(sender); } if ((p = lookup(hdrs, "addr"))) { - p->p_value = getcpy(addr); + p->p_value = mh_xstrdup(addr); } /* @@ -758,10 +759,14 @@ parse(int fd) */ for (i = 0, state = FLD2;;) { switch (state = m_getfld2(state, &f, in)) { + case LENERR2: + state = FLD2; + /* FALL */ + case FLD2: - lp = getcpy(f.value); + lp = mh_xstrdup(f.value); for (p = hdrs; p->p_name; p++) { - if (mh_strcasecmp(p->p_name, f.name)!=0) { + if (mh_strcasecmp(p->p_name, f.name) == 0) { if (!(p->p_flags & P_HID)) { if ((cp = p->p_value)) { if (p->p_flags & P_ADR) { @@ -776,12 +781,12 @@ parse(int fd) } p->p_value = add(lp, cp); } - free(lp); + mh_free0(&lp); break; } } if (!p->p_name && i < NVEC) { - p->p_name = getcpy(f.name); + p->p_name = mh_xstrdup(f.name); p->p_value = lp; p->p_flags = P_NIL; p++, i++; @@ -793,7 +798,6 @@ parse(int fd) case FILEEOF2: break; - case LENERR2: case FMTERR2: case IOERR2: advise(NULL, "format error in message"); @@ -812,7 +816,7 @@ parse(int fd) if (!(q = lookup(hdrs, "reply-to")) || !q->p_value) { q = lookup(hdrs, "from"); } - p->p_value = getcpy(q ? q->p_value : ""); + p->p_value = mh_xstrdup(q ? q->p_value : ""); p->p_flags &= ~P_CHK; if (debug) { debug_printf("vars[%d]: name=\"%s\" value=\"%s\"\n", @@ -885,18 +889,18 @@ glob(int fd) return; } if ((p = lookup(vars, "sender"))) { - p->p_value = getcpy(sender); + p->p_value = mh_xstrdup(sender); } if ((p = lookup(vars, "address"))) { - p->p_value = getcpy(addr); + p->p_value = mh_xstrdup(addr); } if ((p = lookup(vars, "size"))) { snprintf(buffer, sizeof(buffer), "%d", fstat(fd, &st) != -1 ? (int) st.st_size : 0); - p->p_value = getcpy(buffer); + p->p_value = mh_xstrdup(buffer); } if ((p = lookup(vars, "info"))) { - p->p_value = getcpy(info); + p->p_value = mh_xstrdup(info); } if (debug) { for (p = vars; p->p_name; p++) { @@ -1084,7 +1088,7 @@ get_sender(char *envelope, char **sender) unsigned char buffer[BUFSIZ]; if (!envelope) { - *sender = getcpy(""); + *sender = mh_xstrdup(""); return; } @@ -1108,7 +1112,7 @@ get_sender(char *envelope, char **sender) } else { break; } - *sender = getcpy(buffer); + *sender = mh_xstrdup(buffer); } @@ -1188,7 +1192,7 @@ you_lose: ** get copy of envelope information ** ("From " line) */ - envelope = getcpy(buffer); + envelope = mh_xstrdup(buffer); /* Put the delivery date in message */ fputs(ddate, ffp); @@ -1258,7 +1262,7 @@ trimstr(char *cp) *sp = ' '; } } - return getcpy(bp); + return mh_xstrdup(bp); } /*