diff options
author | Amish | 2020-01-12 21:17:55 +0530 |
---|---|---|
committer | Amish | 2020-01-12 21:17:55 +0530 |
commit | 9a22feff4b705c847e69177be00f7873a0841ca3 (patch) | |
tree | ff3c15b644386afd05b1d6f9543dc542880a6eca | |
parent | 0137248e85f7f0b3f24634bab24ce880855a3dbe (diff) | |
download | aur-9a22feff4b705c847e69177be00f7873a0841ca3.tar.gz |
Fix issues discovered by Coverity scan from rhbz#1602689
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | PKGBUILD | 5 | ||||
-rw-r--r-- | sendmail-8.16.0.29-fix-covscan-issues.patch | 149 |
3 files changed, 163 insertions, 5 deletions
@@ -1,13 +1,15 @@ pkgbase = sendmail pkgdesc = A general purpose internetwork email routing MTA pkgver = 8.15.2 - pkgrel = 8 + pkgrel = 9 url = http://www.sendmail.org arch = x86_64 license = custom:sendmail depends = db depends = cyrus-sasl provides = sendmail=8.15 + provides = smtp-server + provides = smtp-forwarder conflicts = msmtp-mta conflicts = postfix conflicts = exim @@ -22,6 +24,8 @@ pkgbase = sendmail source = sendmail-8.15.2-smtp-session-reuse-fix.patch source = sendmail-8.15.2-openssl-1.1.0-fix.patch source = sendmail-8.15.2-openssl-1.1.0-ecdhe-fix.patch + source = sendmail-8.15.2-gethostbyname2.patch + source = sendmail-8.16.0.29-fix-covscan-issues.patch source = sendmail.conf source = sasl2.conf source = sendmail.sysusers @@ -29,17 +33,19 @@ pkgbase = sendmail source = sendmail.service source = sm-client.service sha256sums = 24f94b5fd76705f15897a78932a5f2439a32b1a2fdc35769bb1a5f5d9b4db439 - sha256sums = 01c281630074be308139295836d38faee3d49656b8271df1d3f42e8506b3d751 + sha256sums = 01dc50a378f134e9e3a91f98a5a002a8fa6a0c69b32ceddf6fc29b40e0fb8be9 sha256sums = 03169f8983d200adf2422677bd4adce3b5887f33724778f16d7f58506eac0e05 sha256sums = bc5a0de6c5434d8d46467f93d07b2bb5c7acd62f9dbce2490e0005d21b673250 sha256sums = 9991dd85428778cec0c2030bf49e6ddf6d3db6026c651f858d72891973537b0e sha256sums = 746d8ae8dea54cb2599c02181c2ea28ab15b26ba5e1e3b0f9cfe907a0e7a1d22 + sha256sums = 656c76d42281afbb43fa628e03c4d725e94e6f34a16802427d3314e504086033 + sha256sums = e3b81aa029249ebaeec96120849a38e98fe952c005ecc02761d478f1aa167131 sha256sums = 39730f2be66bb1f1e6bc7fff61911db632ecf4b891d348df525abe2020274580 sha256sums = 9b4d2d141191f6c9a18538f7acf65243cceb26359f88b64c92c1c4e8407398f0 sha256sums = 95531a87d42e30742ca71f7d7197403eb9d703a407a50c9fda1f909ed21e1010 sha256sums = 3469c3c503ef24ccaedeb69b35787ef3745852cf9dc78540f5ec4195d2b817d7 - sha256sums = c53eebc1b5e362bd395cbb1c52354efdc956b9607d06656da2c5a2500554ebc7 - sha256sums = ecbd0a27e868d73d87fcfec292c19ea9479d0a8e9783788596d9add5e012218f + sha256sums = d18c2c716eb94cb22082a7e4693e635222d2b5c7daa2ecc80025179cfd438b3d + sha256sums = c934a46aabe61526687f46d34aa0406d886d982aa10a57980a59464e24538d95 pkgname = sendmail @@ -7,7 +7,7 @@ pkgname=sendmail pkgver=8.15.2 -pkgrel=8 +pkgrel=9 pkgdesc="A general purpose internetwork email routing MTA" url="http://www.sendmail.org" arch=('x86_64') @@ -25,6 +25,7 @@ source=("https://ftp.sendmail.org/${pkgname}.${pkgver}.tar.gz" 'sendmail-8.15.2-openssl-1.1.0-fix.patch' 'sendmail-8.15.2-openssl-1.1.0-ecdhe-fix.patch' 'sendmail-8.15.2-gethostbyname2.patch' + 'sendmail-8.16.0.29-fix-covscan-issues.patch' 'sendmail.conf' 'sasl2.conf' 'sendmail.sysusers' @@ -39,6 +40,7 @@ sha256sums=('24f94b5fd76705f15897a78932a5f2439a32b1a2fdc35769bb1a5f5d9b4db439' '9991dd85428778cec0c2030bf49e6ddf6d3db6026c651f858d72891973537b0e' '746d8ae8dea54cb2599c02181c2ea28ab15b26ba5e1e3b0f9cfe907a0e7a1d22' '656c76d42281afbb43fa628e03c4d725e94e6f34a16802427d3314e504086033' + 'e3b81aa029249ebaeec96120849a38e98fe952c005ecc02761d478f1aa167131' '39730f2be66bb1f1e6bc7fff61911db632ecf4b891d348df525abe2020274580' '9b4d2d141191f6c9a18538f7acf65243cceb26359f88b64c92c1c4e8407398f0' '95531a87d42e30742ca71f7d7197403eb9d703a407a50c9fda1f909ed21e1010' @@ -54,6 +56,7 @@ prepare() { patch -p1 < "${srcdir}"/sendmail-8.15.2-openssl-1.1.0-fix.patch patch -p1 < "${srcdir}"/sendmail-8.15.2-openssl-1.1.0-ecdhe-fix.patch patch -p1 < "${srcdir}"/sendmail-8.15.2-gethostbyname2.patch + patch -p1 < "${srcdir}"/sendmail-8.16.0.29-fix-covscan-issues.patch sed -i -e 's/CFGRP=bin/CFGRP=root/g' cf/cf/Makefile install -m644 -t devtools/Site "${srcdir}"/site.config.m4 } diff --git a/sendmail-8.16.0.29-fix-covscan-issues.patch b/sendmail-8.16.0.29-fix-covscan-issues.patch new file mode 100644 index 000000000000..ee24c9151124 --- /dev/null +++ b/sendmail-8.16.0.29-fix-covscan-issues.patch @@ -0,0 +1,149 @@ +diff --git a/include/sm/varargs.h b/include/sm/varargs.h +index 612858d..2609630 100644 +--- a/include/sm/varargs.h ++++ b/include/sm/varargs.h +@@ -32,6 +32,11 @@ + # define SM_VA_COPY(dst, src) __va_copy((dst), (src)) + # else + # define SM_VA_COPY(dst, src) memcpy(&(dst), &(src), sizeof((dst))) ++# define SM_VA_END_COPY(ap) do { } while (0) ++# endif ++ ++# ifndef SM_VA_END_COPY ++# define SM_VA_END_COPY(ap) va_end(ap) + # endif + + /* +diff --git a/libsm/vfprintf.c b/libsm/vfprintf.c +index 87c353c..c99d4e5 100644 +--- a/libsm/vfprintf.c ++++ b/libsm/vfprintf.c +@@ -782,6 +782,7 @@ number: if ((dprec = prec) >= 0) + done: + FLUSH(); + error: ++ SM_VA_END_COPY(orgap); + if ((argtable != NULL) && (argtable != statargtable)) + sm_free(argtable); + return sm_error(fp) ? SM_IO_EOF : ret; +diff --git a/sendmail/milter.c b/sendmail/milter.c +index 462efd2..af6dc66 100644 +--- a/sendmail/milter.c ++++ b/sendmail/milter.c +@@ -2441,8 +2441,7 @@ milter_negotiate(m, e, milters) + sm_syslog(LOG_ERR, e->e_id, + "Milter (%s): negotiate: returned %c instead of %c", + m->mf_name, rcmd, SMFIC_OPTNEG); +- if (response != NULL) +- sm_free(response); /* XXX */ ++ SM_FREE(response); + milter_error(m, e); + return -1; + } +@@ -2457,8 +2456,7 @@ milter_negotiate(m, e, milters) + sm_syslog(LOG_ERR, e->e_id, + "Milter (%s): negotiate: did not return valid info", + m->mf_name); +- if (response != NULL) +- sm_free(response); /* XXX */ ++ SM_FREE(response); + milter_error(m, e); + return -1; + } +@@ -2476,8 +2474,7 @@ milter_negotiate(m, e, milters) + sm_syslog(LOG_ERR, e->e_id, + "Milter (%s): negotiate: did not return enough info", + m->mf_name); +- if (response != NULL) +- sm_free(response); /* XXX */ ++ SM_FREE(response); + milter_error(m, e); + return -1; + } +@@ -2593,11 +2590,11 @@ milter_negotiate(m, e, milters) + if (tTd(64, 5)) + sm_dprintf("milter_negotiate(%s): received: version %u, fflags 0x%x, pflags 0x%x\n", + m->mf_name, m->mf_fvers, m->mf_fflags, m->mf_pflags); ++ SM_FREE(response); + return 0; + + error: +- if (response != NULL) +- sm_free(response); /* XXX */ ++ SM_FREE(response); + return -1; + } + +@@ -3233,6 +3230,7 @@ milter_changeheader(m, response, rlen, e) + addheader(newstr(field), mh_value, H_USER, e, + !bitset(SMFIP_HDR_LEADSPC, m->mf_pflags)); + } ++ SM_FREE(mh_value); + return; + } + +@@ -3441,6 +3439,8 @@ milter_chgfrom(response, rlen, e) + { + if (tTd(64, 10)) + sm_dprintf("didn't follow protocol argc=%d\n", argc); ++ if (argv != NULL) ++ free(argv); + return; + } + +@@ -3459,6 +3459,7 @@ milter_chgfrom(response, rlen, e) + mail_esmtp_args); + } + Errors = olderrors; ++ free(argv); + return; + } + +@@ -3506,6 +3507,8 @@ milter_addrcpt_par(response, rlen, e) + { + if (tTd(64, 10)) + sm_dprintf("didn't follow protocol argc=%d\n", argc); ++ if (argv != NULL) ++ free(argv); + return; + } + olderrors = Errors; +@@ -3530,6 +3533,7 @@ milter_addrcpt_par(response, rlen, e) + } + + Errors = olderrors; ++ free(argv); + return; + } + +diff --git a/sendmail/queue.c b/sendmail/queue.c +index 503f296..c9153c8 100644 +--- a/sendmail/queue.c ++++ b/sendmail/queue.c +@@ -8433,6 +8433,7 @@ split_by_recipient(e) + if (split_within_queue(ee) == SM_SPLIT_FAIL) + { + e->e_sibling = firstsibling; ++ SM_FREE(lsplits); + return false; + } + ee->e_flags |= EF_SPLIT; +@@ -8447,8 +8448,7 @@ split_by_recipient(e) + if (p == NULL) + { + /* let's try to get this done */ +- sm_free(lsplits); +- lsplits = NULL; ++ SM_FREE(lsplits); + } + else + lsplits = p; +@@ -8470,7 +8470,7 @@ split_by_recipient(e) + { + sm_syslog(LOG_NOTICE, e->e_id, "split: count=%d, id%s=%s", + n - 1, n > 2 ? "s" : "", lsplits); +- sm_free(lsplits); ++ SM_FREE(lsplits); + } + split = split_within_queue(e) != SM_SPLIT_FAIL; + if (split) |