about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2022-09-19 19:12:09 -0400
committerRich Felker <dalias@aerifal.cx>2022-09-19 19:12:09 -0400
commitdc9285ad1dc19349c407072cc48ba70dab86de45 (patch)
treeb527e634346032ed1f709b6428e1634f8c58ad26 /src
parentf9827fc7da55c7b03ea5f36598ce8782c03e9d6e (diff)
downloadmusl-dc9285ad1dc19349c407072cc48ba70dab86de45.tar.gz
musl-dc9285ad1dc19349c407072cc48ba70dab86de45.tar.xz
musl-dc9285ad1dc19349c407072cc48ba70dab86de45.zip
fix error cases in gethostbyaddr_r
EAI_MEMORY is not possible (but would not provide errno if it were)
and EAI_FAIL does not provide errno. treat the latter as EBADMSG to
match how it's handled in gethostbyname2_r (it indicates erroneous or
failure response from the nameserver).
Diffstat (limited to 'src')
-rw-r--r--src/network/gethostbyaddr_r.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/network/gethostbyaddr_r.c b/src/network/gethostbyaddr_r.c
index 0f1e61aa..ceaf3935 100644
--- a/src/network/gethostbyaddr_r.c
+++ b/src/network/gethostbyaddr_r.c
@@ -54,10 +54,11 @@ int gethostbyaddr_r(const void *a, socklen_t l, int af,
 	case EAI_OVERFLOW:
 		return ERANGE;
 	default:
-	case EAI_MEMORY:
-	case EAI_SYSTEM:
 	case EAI_FAIL:
 		*err = NO_RECOVERY;
+		return EBADMSG;
+	case EAI_SYSTEM:
+		*err = NO_RECOVERY;
 		return errno;
 	case 0:
 		break;