X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Frcvdist.c;h=f3caa50003249a80b80b0eb18e7ae3308e9e0b52;hp=89bb1dc5747b37eec751b85c203c69bc89d6e547;hb=a8984c0e490cda653615bc0e1d4743ad8fe7a2a7;hpb=5ba9c2f13fedf1d8d6ed907ef1f505616290efaa diff --git a/uip/rcvdist.c b/uip/rcvdist.c index 89bb1dc..f3caa50 100644 --- a/uip/rcvdist.c +++ b/uip/rcvdist.c @@ -85,7 +85,7 @@ main(int argc, char **argv) continue; } } - addrs = addrs ? add(cp, add(", ", addrs)) : getcpy(cp); + addrs = addrs ? add(cp, add(", ", addrs)) : mh_xstrdup(cp); } if (!addrs) { @@ -170,20 +170,13 @@ rcvdistout(FILE *inb, char *form, char *addrs) cp = new_fs(form ? form : rcvdistcomps, NULL); format_len = strlen(cp); ncomps = fmt_compile(cp, &fmt) + 1; - if (!(nxtbuf = compbuffers = - (char **) calloc((size_t) ncomps, sizeof(char *)))) { - adios(EX_OSERR, NULL, "unable to allocate component buffers"); - } - if (!(savecomp = used_buf = - (struct comp **) calloc((size_t) (ncomps + 1), - sizeof(struct comp *)))) { - adios(EX_OSERR, NULL, "unable to allocate component buffer stack"); - } + nxtbuf = compbuffers = mh_xcalloc(ncomps, sizeof(char *)); + savecomp = used_buf = mh_xcalloc(ncomps + 1, sizeof(struct comp *)); savecomp += ncomps + 1; *--savecomp = 0; for (i = ncomps; i--;) { - *nxtbuf++ = mh_xmalloc(SBUFSIZ); + *nxtbuf++ = mh_xcalloc(SBUFSIZ, sizeof(char)); } nxtbuf = compbuffers; tmpbuf = *nxtbuf++; @@ -256,7 +249,7 @@ rcvdistout(FILE *inb, char *form, char *addrs) finished: ; i = format_len + char_read + 256; - scanl = mh_xmalloc((size_t) i + 2); + scanl = mh_xcalloc(i + 2, sizeof(char)); dat[0] = dat[1] = dat[2] = dat[4] = 0; dat[3] = OUTPUTLINELEN; fmt_scan(fmt, scanl, i, dat); @@ -267,16 +260,16 @@ finished: ; } fclose(out); - free(scanl); + mh_free0(&scanl); for (nxtbuf = compbuffers, i = ncomps; (cptr = *savecomp++); nxtbuf++, i--) { - free(cptr->c_text); + mh_free0(&(cptr->c_text)); } while (i-- > 0) { - free(*nxtbuf++); + mh_free0(nxtbuf++); } - free(compbuffers); - free(used_buf); + mh_free0(&compbuffers); + mh_free0(&used_buf); }