From: Simon Kelley Date: Sun, 8 Jun 2014 20:51:29 +0000 (+0100) Subject: Fix bug when >1 IPv6 address supplied to Dbus SetServers method. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=006c162382aaa30f63413b876ecbe805280c3d36;p=people%2Fms%2Fdnsmasq.git Fix bug when >1 IPv6 address supplied to Dbus SetServers method. --- diff --git a/src/dbus.c b/src/dbus.c index 93c597c..4696442 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -156,13 +156,16 @@ static void dbus_read_servers(DBusMessage *message) dbus_message_iter_get_basic(&iter, &p[i]); dbus_message_iter_next (&iter); if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_BYTE) - break; + { + i++; + break; + } } #ifndef HAVE_IPV6 my_syslog(LOG_WARNING, _("attempt to set an IPv6 server address via DBus - no IPv6 support")); #else - if (i == sizeof(struct in6_addr)-1) + if (i == sizeof(struct in6_addr)) { memcpy(&addr.in6.sin6_addr, p, sizeof(struct in6_addr)); #ifdef HAVE_SOCKADDR_SA_LEN