mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-22 19:00:07 +00:00
Fix error code for too small input buffer to getnameinfo
This commit is contained in:
parent
e7f9dac362
commit
27deeafc3f
@ -1,5 +1,9 @@
|
||||
2011-12-22 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
[BZ #13166]
|
||||
* inet/getnameinfo.c (getnameinfo): Return EAI_OVERFLOW if the
|
||||
buffer for the output is too small.
|
||||
|
||||
* sysdeps/i386/fpu/bits/fenv.h [__SSE_MATH__]: Add feraiseexcept
|
||||
optimization.
|
||||
|
||||
|
8
NEWS
8
NEWS
@ -11,10 +11,10 @@ Version 2.15
|
||||
|
||||
6779, 6783, 9696, 10103, 10709, 11589, 12403, 12847, 12868, 12852, 12874,
|
||||
12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090,
|
||||
13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13185,
|
||||
13189, 13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335, 13337,
|
||||
13344, 13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472, 13484,
|
||||
13506, 13515, 13523, 13524, 13538, 13540
|
||||
13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13166, 13179,
|
||||
13185, 13189, 13192, 13268, 13276, 13282, 13291, 13305, 13328, 13335,
|
||||
13337, 13344, 13358, 13367, 13413, 13416, 13423, 13439, 13446, 13472,
|
||||
13484, 13506, 13515, 13523, 13524, 13538, 13540
|
||||
|
||||
* New program pldd to list loaded object of a process
|
||||
Implemented by Ulrich Drepper.
|
||||
|
@ -346,10 +346,11 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||||
"%u", scopeid);
|
||||
|
||||
if (real_hostlen + scopelen + 1 > hostlen)
|
||||
/* XXX We should not fail here. Simply enlarge
|
||||
the buffer or return with out of memory. */
|
||||
return EAI_SYSTEM;
|
||||
memcpy (host + real_hostlen, scopebuf, scopelen + 1);
|
||||
/* Signal the buffer is too small. This is
|
||||
what inet_ntop does. */
|
||||
c = NULL;
|
||||
else
|
||||
memcpy (host + real_hostlen, scopebuf, scopelen + 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -357,7 +358,7 @@ getnameinfo (const struct sockaddr *sa, socklen_t addrlen, char *host,
|
||||
(const void *) &(((const struct sockaddr_in *) sa)->sin_addr),
|
||||
host, hostlen);
|
||||
if (c == NULL)
|
||||
return EAI_SYSTEM;
|
||||
return EAI_OVERFLOW;
|
||||
}
|
||||
ok = 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user