masqmail

diff src/spool.c @ 300:d04894d0fc64

free memory in spool read for continuation header lines see the docs to g_strconcat() about memory allocation
author markus schnalke <meillo@marmaro.de>
date Thu, 09 Dec 2010 14:59:42 -0300
parents 5a0e8ed56c2a
children b45dc53f2829
line diff
     1.1 --- a/src/spool.c	Thu Dec 09 13:53:48 2010 -0300
     1.2 +++ b/src/spool.c	Thu Dec 09 14:59:42 2010 -0300
     1.3 @@ -182,13 +182,16 @@
     1.4  	/* mail headers */
     1.5  	while ((len = read_line(in, buf, MAX_DATALINE)) > 0) {
     1.6  		if (strncasecmp(buf, "HD:", 3) == 0) {
     1.7 +			DEBUG(6) debugf("spool_read_header(): hdr start\n");
     1.8  			hdr = get_header(&(buf[3]));
     1.9  			msg->hdr_list = g_list_append(msg->hdr_list, hdr);
    1.10  		} else if ((buf[0] == ' ' || buf[0] == '\t') && hdr) {
    1.11 +			DEBUG(6) debugf("spool_read_header(): hdr continuation\n");
    1.12  			char *tmp = hdr->header;
    1.13  			/* header continuation */
    1.14  			hdr->header = g_strconcat(hdr->header, buf, NULL);
    1.15  			hdr->value = hdr->header + (hdr->value - tmp);
    1.16 +			free(tmp);  /* because g_strconcat() allocs and copies */
    1.17  		} else {
    1.18  			break;
    1.19  		}