nettimeprovider: handle invalid network addresses earlier

Handle inet_aton() return code.
This commit is contained in:
Stefan Kost 2011-01-12 12:58:44 +02:00
parent 7fc30f2d83
commit 5cc2e6af79

View file

@ -373,8 +373,11 @@ gst_net_time_provider_start (GstNetTimeProvider * self)
my_addr.sin_family = AF_INET; /* host byte order */ my_addr.sin_family = AF_INET; /* host byte order */
my_addr.sin_port = htons ((gint16) self->port); /* short, network byte order */ my_addr.sin_port = htons ((gint16) self->port); /* short, network byte order */
my_addr.sin_addr.s_addr = INADDR_ANY; my_addr.sin_addr.s_addr = INADDR_ANY;
if (self->address) if (self->address) {
inet_aton (self->address, &my_addr.sin_addr); ret = inet_aton (self->address, &my_addr.sin_addr);
if (ret == 0)
goto invalid_address_error;
}
GST_DEBUG_OBJECT (self, "binding on port %d", self->port); GST_DEBUG_OBJECT (self, "binding on port %d", self->port);
ret = ret =
@ -428,6 +431,14 @@ setsockopt_error:
g_strerror (errno), errno); g_strerror (errno), errno);
return FALSE; return FALSE;
} }
invalid_address_error:
{
close (self->priv->sock.fd);
self->priv->sock.fd = -1;
GST_ERROR_OBJECT (self, "invalid network address %s: %s (%d)",
self->address, g_strerror (errno), errno);
return FALSE;
}
bind_error: bind_error:
{ {
close (self->priv->sock.fd); close (self->priv->sock.fd);