summaryrefslogtreecommitdiff
path: root/net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch')
-rw-r--r--net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch b/net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch
new file mode 100644
index 000000000000..7a4d2da7187f
--- /dev/null
+++ b/net-dns/rbldnsd/files/rbldnsd-0.998-fix-huge-zone-OOM.patch
@@ -0,0 +1,60 @@
+This upstream patch has been merged but not released. I (mjo) dropped
+a change to the NEWS file to prevent a pointless conflict.
+
+From a1295eefc78b6e8a3c220e164dbfad6dbecc6f6e Mon Sep 17 00:00:00 2001
+From: Antonio Mammita <am@spamteq.com>
+Date: Wed, 21 Dec 2016 16:54:06 +0100
+Subject: [PATCH] Fix for out of memory errors on huge zones. Thanks to Andrew
+ Clayton
+
+---
+ rbldnsd.h | 6 +++---
+ rbldnsd_util.c | 6 +++---
+ 3 files changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/rbldnsd.h b/rbldnsd.h
+index 6acd8a0..f195a30 100644
+--- a/rbldnsd.h
++++ b/rbldnsd.h
+@@ -367,9 +367,9 @@ extern struct dataset *g_dsacl; /* global acl */
+ extern const char *show_version; /* version.bind CH TXT */
+
+ void oom(void);
+-char *emalloc(unsigned size);
+-char *ezalloc(unsigned size); /* zero-fill */
+-char *erealloc(void *ptr, unsigned size);
++char *emalloc(size_t size);
++char *ezalloc(size_t size); /* zero-fill */
++char *erealloc(void *ptr, size_t size);
+ char *estrdup(const char *str);
+ char *ememdup(const void *buf, unsigned size);
+
+diff --git a/rbldnsd_util.c b/rbldnsd_util.c
+index d17b51b..c6d628d 100644
+--- a/rbldnsd_util.c
++++ b/rbldnsd_util.c
+@@ -460,21 +460,21 @@ dump_a_txt(const char *name, const char *rr,
+
+ #endif
+
+-char *emalloc(unsigned size) {
++char *emalloc(size_t size) {
+ void *ptr = malloc(size);
+ if (!ptr)
+ oom();
+ return ptr;
+ }
+
+-char *ezalloc(unsigned size) {
++char *ezalloc(size_t size) {
+ void *ptr = calloc(1, size);
+ if (!ptr)
+ oom();
+ return ptr;
+ }
+
+-char *erealloc(void *ptr, unsigned size) {
++char *erealloc(void *ptr, size_t size) {
+ void *nptr = realloc(ptr, size);
+ if (!nptr)
+ oom();