diff --git a/userspace/libraries/LibC/include/netinet/in.h b/userspace/libraries/LibC/include/netinet/in.h index b2539d4e..07ed38d8 100644 --- a/userspace/libraries/LibC/include/netinet/in.h +++ b/userspace/libraries/LibC/include/netinet/in.h @@ -87,6 +87,7 @@ struct sockaddr_in sa_family_t sin_family; /* AF_INET. */ in_port_t sin_port; /* Port number. */ struct in_addr sin_addr; /* IP address. */ + unsigned char sin_zero[8]; }; struct in6_addr diff --git a/userspace/libraries/LibC/include/sys/socket.h b/userspace/libraries/LibC/include/sys/socket.h index d140fc7a..960ba13f 100644 --- a/userspace/libraries/LibC/include/sys/socket.h +++ b/userspace/libraries/LibC/include/sys/socket.h @@ -24,8 +24,8 @@ __BEGIN_DECLS struct sockaddr { - sa_family_t sa_family; /* Address family. */ - char sa_data[0]; /* Socket address (variable-length data). */ + sa_family_t sa_family; /* Address family. */ + char sa_data[14]; /* Socket address (variable-length data). */ }; struct sockaddr_storage diff --git a/userspace/programs/resolver/main.cpp b/userspace/programs/resolver/main.cpp index e0407815..51ed2f12 100644 --- a/userspace/programs/resolver/main.cpp +++ b/userspace/programs/resolver/main.cpp @@ -442,6 +442,7 @@ int main(int, char**) .sin_family = AF_INET, .sin_port = 0, .sin_addr = { .s_addr = resolved->raw }, + .sin_zero = {}, }; if (send(client.socket, &addr, sizeof(addr), 0) == -1) @@ -489,6 +490,7 @@ int main(int, char**) .sin_family = AF_INET, .sin_port = 0, .sin_addr = { .s_addr = result->raw }, + .sin_zero = {}, }; if (send(client.socket, &addr, sizeof(addr), 0) == -1)