minissdpd: unlink unix socket before binding
see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=644510
This commit is contained in:
parent
e667e962ac
commit
fd96a3ddcd
|
@ -1,5 +1,8 @@
|
|||
$Id: Changelog.txt,v 1.19 2011/07/30 13:16:22 nanard Exp $
|
||||
|
||||
2011/10/07:
|
||||
unlink unix socket before binding.
|
||||
|
||||
VERSION 1.1:
|
||||
|
||||
2011/07/30:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: minissdpd.c,v 1.24 2011/07/30 13:10:05 nanard Exp $ */
|
||||
/* $Id: minissdpd.c,v 1.25 2011/10/07 09:13:25 nanard Exp $ */
|
||||
/* MiniUPnP project
|
||||
* (c) 2007-2011 Thomas Bernard
|
||||
* website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
|
@ -462,12 +462,21 @@ OpenUnixSocket(const char * path)
|
|||
{
|
||||
struct sockaddr_un addr;
|
||||
int s;
|
||||
int rv;
|
||||
s = socket(AF_UNIX, SOCK_STREAM, 0);
|
||||
if(s < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "socket(AF_UNIX): %m");
|
||||
return -1;
|
||||
}
|
||||
/* unlink the socket pseudo file before binding */
|
||||
rv = unlink(path);
|
||||
if(rv < 0 && errno != ENOENT)
|
||||
{
|
||||
syslog(LOG_ERR, "unlink(unixsocket, \"%s\"): %m", path);
|
||||
close(s);
|
||||
return -1;
|
||||
}
|
||||
addr.sun_family = AF_UNIX;
|
||||
strncpy(addr.sun_path, path, sizeof(addr.sun_path));
|
||||
if(bind(s, (struct sockaddr *)&addr,
|
||||
|
|
Loading…
Reference in New Issue