bindlocal: detect and avoid IP version mismatches in bind()

Reported-by: Alex Grebenschikov
Fixes #3993
Closes #4002
This commit is contained in:
Daniel Stenberg 2019-06-08 23:21:45 +02:00
parent 094b5f3540
commit 1667d5599d
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
1 changed files with 5 additions and 0 deletions

View File

@ -368,6 +368,11 @@ static CURLcode bindlocal(struct connectdata *conn,
infof(data, "Name '%s' family %i resolved to '%s' family %i\n",
dev, af, myhost, h->addr->ai_family);
Curl_resolv_unlock(data, h);
if(af != h->addr->ai_family) {
/* bad IP version combo, signal the caller to try another address
family if available */
return CURLE_UNSUPPORTED_PROTOCOL;
}
done = 1;
}
else {