Comment 4 for bug 1327477

Revision history for this message
Simon Kelley (simon-thekelleys) wrote :

I think the following, much simpler, patch should solve the problem.

Simon.

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