wg: uapi: only make sure socket file is socket

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld 2017-09-26 15:02:41 +02:00
parent 9ef84af8c0
commit 9a0790b50a

View file

@ -129,11 +129,16 @@ out:
static bool userspace_has_wireguard_interface(const char *interface)
{
FILE *f = userspace_interface_file(interface);
if (!f)
struct stat sbuf;
char path[PATH_MAX] = { 0 };
if (strchr(interface, '/'))
return false;
fclose(f);
return true;
if (snprintf(path, sizeof(path) - 1, SOCK_PATH "%s" SOCK_SUFFIX, interface) < 0)
return false;
if (stat(path, &sbuf) < 0)
return false;
return S_ISSOCK(sbuf.st_mode);
}
static int userspace_get_wireguard_interfaces(struct inflatable_buffer *buffer)