summaryrefslogtreecommitdiff
path: root/ext/sockets/sockets.c
diff options
context:
space:
mode:
authorDavid Walker <dave@mudsite.com>2016-08-24 11:22:05 -0600
committerDavid Walker <dave@mudsite.com>2016-08-24 11:22:05 -0600
commitd59af68fd9d8babba99fa52291982c279a5aae40 (patch)
tree76591830ae38dd0a110886b01734db905e10ede9 /ext/sockets/sockets.c
parent7373ce914914e9a434216554a7e29aa4d1775d97 (diff)
downloadphp-git-d59af68fd9d8babba99fa52291982c279a5aae40.tar.gz
Make sure to copy the right amount of mem over. IPv6 can be larger than struct sockaddr
Diffstat (limited to 'ext/sockets/sockets.c')
-rw-r--r--ext/sockets/sockets.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index c39a6172ae..962fdbea66 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -2533,7 +2533,7 @@ PHP_FUNCTION(socket_addrinfo_lookup)
if (strcmp(ZSTR_VAL(key), "ai_flags") == 0) {
hints.ai_flags = Z_LVAL_P(hint);
} else if (strcmp(ZSTR_VAL(key), "ai_socktype") == 0) {
- hints.ai_socktype= Z_LVAL_P(hint);
+ hints.ai_socktype = Z_LVAL_P(hint);
} else if (strcmp(ZSTR_VAL(key), "ai_protocol") == 0) {
hints.ai_protocol = Z_LVAL_P(hint);
} else if (strcmp(ZSTR_VAL(key), "ai_family") == 0) {
@@ -2556,8 +2556,8 @@ PHP_FUNCTION(socket_addrinfo_lookup)
res = emalloc(sizeof(struct addrinfo));
memcpy(res, rp, sizeof(struct addrinfo));
- res->ai_addr = emalloc(sizeof(struct sockaddr));
- memcpy(res->ai_addr, rp->ai_addr, sizeof(struct sockaddr));
+ res->ai_addr = emalloc(rp->ai_addrlen);
+ memcpy(res->ai_addr, rp->ai_addr, rp->ai_addrlen);
if (rp->ai_canonname != NULL) {
res->ai_canonname = estrdup(rp->ai_canonname);
@@ -2723,7 +2723,7 @@ PHP_FUNCTION(socket_addrinfo_explain)
}
array_init(&sockaddr);
- switch(ai->ai_addr->sa_family) {
+ switch(ai->ai_family) {
case AF_INET:
{
struct sockaddr_in *sa = (struct sockaddr_in *) ai->ai_addr;