Merge branch 'jk/maint-diffstat-overflow' into maint
[gitweb.git] / daemon.c
index 6c2bd977131752e05d3ac545af0d977d6d7ca672..a90ab10505a3694de83a0ffd8fc472518f12cf2b 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -407,7 +407,7 @@ static void parse_host_and_port(char *hostport, char **host,
 
                end = strchr(hostport, ']');
                if (!end)
-                       die("Invalid reqeuest ('[' without ']')");
+                       die("Invalid request ('[' without ']')");
                *end = '\0';
                *host = hostport + 1;
                if (!end[1])
@@ -420,7 +420,7 @@ static void parse_host_and_port(char *hostport, char **host,
                *host = hostport;
                *port = strrchr(hostport, ':');
                if (*port) {
-                       *port = '\0';
+                       **port = '\0';
                        ++*port;
                }
        }
@@ -590,14 +590,17 @@ static int execute(struct sockaddr *addr)
 static int addrcmp(const struct sockaddr_storage *s1,
     const struct sockaddr_storage *s2)
 {
-       if (s1->ss_family != s2->ss_family)
-               return s1->ss_family - s2->ss_family;
-       if (s1->ss_family == AF_INET)
+       const struct sockaddr *sa1 = (const struct sockaddr*) s1;
+       const struct sockaddr *sa2 = (const struct sockaddr*) s2;
+
+       if (sa1->sa_family != sa2->sa_family)
+               return sa1->sa_family - sa2->sa_family;
+       if (sa1->sa_family == AF_INET)
                return memcmp(&((struct sockaddr_in *)s1)->sin_addr,
                    &((struct sockaddr_in *)s2)->sin_addr,
                    sizeof(struct in_addr));
 #ifndef NO_IPV6
-       if (s1->ss_family == AF_INET6)
+       if (sa1->sa_family == AF_INET6)
                return memcmp(&((struct sockaddr_in6 *)s1)->sin6_addr,
                    &((struct sockaddr_in6 *)s2)->sin6_addr,
                    sizeof(struct in6_addr));