gsocketlistener: Fix IPv4 listen() error-handling resulting in use-after-free
Submitted by Ole André Vadla Ravnås
Link to original bug (#780359)
Description
In add_any_inet_port() for the case where we successfully listen()ed on IPv6, but failed to listen on IPv4, we would erroneously unref the IPv6 socket which we just gave away ownership of by adding it to priv->sockets.
However, given that the existing logic is best-effort we shouldn't report it as an error if IPv4 listen() fails in the case where we actually managed to listen() on IPv6.
This issue was observed in an Android 4.4 ARM emulator.
Version: 2.52.x