From: Garming Sam Date: Thu, 1 Jun 2017 02:36:07 +0000 (+1200) Subject: dnsserver: Stop dns_name_equal doing OOB read X-Git-Tag: ldb-1.1.31~172 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ccfd38156ddf2435df15600638cde8ed020958f;p=thirdparty%2Fsamba.git 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 --- diff --git a/source4/rpc_server/dnsserver/dnsdata.c b/source4/rpc_server/dnsserver/dnsdata.c index 9b3c9f9d406..c3006433515 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; }