OSDN Git Service

getnameinfo: make size check not fail for bigger sizes
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 26 Oct 2015 22:03:55 +0000 (23:03 +0100)
committerRich Felker <dalias@aerifal.cx>
Tue, 27 Oct 2015 00:00:03 +0000 (20:00 -0400)
commit6eada2edb302ff061be8546b23c9cb836621d122
treea1363be9c883eb37a4f7d7eda7ea399198109f1c
parent2683e267fa6c20d2e7a498a85f79a1dfc4301f23
getnameinfo: make size check not fail for bigger sizes

getnameinfo() compares the size of the given struct sockaddr with
sizeof(struct sockaddr_in) and sizeof(struct sockaddr_in6) depending on
the net family. When you add a sockaddr of size sizeof(struct
sockaddr_storage) this function will fail because the size of the
sockaddr is too big. Change the check that it only fails if the size is
too small, but make it work when it is too big for example when someone
calls this function with a struct sockaddr_storage and its size.
This fixes a problem with IoTivity 1.0.0 and musl.

glibc and bionic are only failing if it is smaller, net/freebsd
implemented the != check.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
src/network/getnameinfo.c