summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@github.com>2016-02-28 20:13:24 -0500
committerEdward Thomson <ethomson@github.com>2016-02-28 20:13:24 -0500
commitdbee683553ef4c43273b24ebc503d424c46c01f1 (patch)
tree65842c1fe901698c1bc049726d9bddde72a853c3
parent1a9d7c95a1aaedffffd07665109663861195b993 (diff)
parent9f9df4b6e05cc5950953177a1cb48739f1ddfc29 (diff)
downloadlibgit2-dbee683553ef4c43273b24ebc503d424c46c01f1.tar.gz
Merge pull request #3567 from sba1/few-p_getaddrinfo-fixes
Few p_getaddrinfo fixes
-rw-r--r--src/posix.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/posix.c b/src/posix.c
index 8d86aa8bf..c7201ba14 100644
--- a/src/posix.c
+++ b/src/posix.c
@@ -62,8 +62,11 @@ int p_getaddrinfo(
ai = ainfo;
for (p = 1; ainfo->ai_hostent->h_addr_list[p] != NULL; p++) {
- ai->ai_next = malloc(sizeof(struct addrinfo));
- memcpy(&ai->ai_next, ainfo, sizeof(struct addrinfo));
+ if (!(ai->ai_next = malloc(sizeof(struct addrinfo)))) {
+ p_freeaddrinfo(ainfo);
+ return -1;
+ }
+ memcpy(ai->ai_next, ainfo, sizeof(struct addrinfo));
memcpy(&ai->ai_next->ai_addr_in.sin_addr,
ainfo->ai_hostent->h_addr_list[p],
ainfo->ai_hostent->h_length);