From acfb43d971cdf1cba4d7b7822abb78be8d5be002 Mon Sep 17 00:00:00 2001 From: Garming Sam Date: Thu, 1 Jun 2017 14:36:07 +1200 Subject: [PATCH] dnsserver: Stop dns_name_equal doing OOB read This has been the cause of a large number of flakey autobuilds. Every now and again dns_name_equal would not be equal between two empty strings, thus causing failures. Signed-off-by: Garming Sam Reviewed-by: Andrew Bartlett BUG: https://bugzilla.samba.org/show_bug.cgi?id=12813 Autobuild-User(master): Andrew Bartlett Autobuild-Date(master): Thu Jun 1 19:34:38 CEST 2017 on sn-devel-144 (cherry picked from commit 5ccfd38156ddf2435df15600638cde8ed020958f) --- source4/rpc_server/dnsserver/dnsdata.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source4/rpc_server/dnsserver/dnsdata.c b/source4/rpc_server/dnsserver/dnsdata.c index 9b3c9f9..c300643 100644 --- a/source4/rpc_server/dnsserver/dnsdata.c +++ b/source4/rpc_server/dnsserver/dnsdata.c @@ -1127,8 +1127,8 @@ bool dns_name_equal(const char *name1, const char *name2) size_t len1 = strlen(name1); size_t len2 = strlen(name2); - if (name1[len1-1] == '.') len1--; - if (name2[len2-1] == '.') len2--; + if (len1 > 0 && name1[len1-1] == '.') len1--; + if (len2 > 0 && name2[len2-1] == '.') len2--; if (len1 != len2) { return false; } -- 2.9.4