Hi,

here a first patch among a small patchset.

Kind regards.
From 65b5807cfbdebf28f01695fa02a34cd0353d4212 Mon Sep 17 00:00:00 2001
From: David Carlier <dcarl...@afilias.info>
Date: Fri, 8 Apr 2016 10:26:44 +0100
Subject: [PATCH 1/4] BUG/MINOR: server: risk of over reading the pref_net
 array.

dns_option struct pref_net field is an array of 5. The issue
here shows that pref_net_nb can go up to 5 as well which might lead
to read outside of this array.
---
 src/server.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/server.c b/src/server.c
index 72799bb..5a2c58a 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1116,7 +1116,7 @@ int parse_server(const char *file, int linenum, char **args, struct proxy *curpr
 				e = p;
 				while (*p != '\0') {
 					/* If no room avalaible, return error. */
-					if (opt->pref_net_nb > SRV_MAX_PREF_NET) {
+					if (opt->pref_net_nb >= SRV_MAX_PREF_NET) {
 						Alert("parsing [%s:%d]: '%s' exceed %d networks.\n",
 						      file, linenum, args[cur_arg], SRV_MAX_PREF_NET);
 						err_code |= ERR_ALERT | ERR_FATAL;
-- 
2.5.0

Reply via email to