mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
mail-mta/sendmail: fix CDB map memory leak
Link: https://narkive.com/tsmcN7nY.2 Signed-off-by: Cristian Othón Martínez Vera <cfuga@cfuga.mx> Part-of: https://github.com/gentoo/gentoo/pull/45764 Closes: https://github.com/gentoo/gentoo/pull/45764 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
dd813d7597
commit
42c2e7821f
47
mail-mta/sendmail/files/sendmail-8.18.1-cdb.patch
Normal file
47
mail-mta/sendmail/files/sendmail-8.18.1-cdb.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
Link: https://narkive.com/tsmcN7nY.2
|
||||
|
||||
--- a/sendmail/map.c
|
||||
+++ b/sendmail/map.c
|
||||
@@ -3042,7 +3042,7 @@
|
||||
char **av;
|
||||
int *statp;
|
||||
{
|
||||
- char *data;
|
||||
+ char *data, *result;
|
||||
struct cdb *cdbmap;
|
||||
unsigned int klen, dlen;
|
||||
int st, fd;
|
||||
@@ -3050,6 +3050,7 @@
|
||||
char buf[MAXPATHLEN];
|
||||
|
||||
data = NULL;
|
||||
+ result = NULL;
|
||||
cdbmap = map->map_db1;
|
||||
if (tTd(38, 20))
|
||||
sm_dprintf("cdb_map_lookup(%s, %s)\n", map->map_mname, name);
|
||||
@@ -3136,14 +3137,22 @@
|
||||
else
|
||||
{
|
||||
dlen = cdb_datalen(cdbmap);
|
||||
- data = malloc(dlen + 1);
|
||||
+ data = (char *) sm_malloc(dlen + 1);
|
||||
+ if (NULL == data)
|
||||
+ {
|
||||
+ *statp = EX_TEMPFAIL;
|
||||
+ return NULL;
|
||||
+ }
|
||||
cdb_read(cdbmap, data, dlen, cdb_datapos(cdbmap));
|
||||
data[dlen] = '\0';
|
||||
}
|
||||
if (bitset(MF_MATCHONLY, map->map_mflags))
|
||||
- return map_rewrite(map, name, strlen(name), NULL);
|
||||
+ result = map_rewrite(map, name, strlen(name), NULL);
|
||||
else
|
||||
- return map_rewrite(map, data, dlen, av);
|
||||
+ result = map_rewrite(map, data, dlen, av);
|
||||
+
|
||||
+ SM_FREE(data);
|
||||
+ return result;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -87,6 +87,7 @@ PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.16.1-build-system.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-tcpwrappers.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-more-c23.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-cdb.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
@@ -87,6 +87,7 @@ PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.16.1-build-system.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-tcpwrappers.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-more-c23.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-cdb.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
@@ -85,6 +85,7 @@ PDEPEND="
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch
|
||||
"${FILESDIR}"/${PN}-8.16.1-build-system.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-cdb.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
@@ -85,6 +85,7 @@ PDEPEND="
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.13.1-delivered_hdr.patch
|
||||
"${FILESDIR}"/${PN}-8.16.1-build-system.patch
|
||||
"${FILESDIR}"/${PN}-8.18.1-cdb.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
Reference in New Issue
Block a user