From 28a978f276b3602b8d4cb5a7fcdf28555154d409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Gallou=C3=ABt?= Date: Wed, 25 Mar 2020 07:32:34 +0000 Subject: [PATCH] Fix the last fix :) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Adrien Gallouët --- src/tun.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/tun.c b/src/tun.c index d4b2ce0..39303d5 100644 --- a/src/tun.c +++ b/src/tun.c @@ -131,14 +131,22 @@ tun_create_by_name(char *name, size_t len, const char *dev_name) static int tun_create_by_name(char *name, size_t len, const char *dev_name) { - int ret = snprintf(name, len, "/dev/%s", dev_name); + char tmp[64]; + int ret = snprintf(name, len, "%s", dev_name); if (ret <= 0 || (size_t)ret >= len) { errno = EINVAL; return -1; } - return open(name, O_RDWR); + ret = snprintf(tmp, sizeof(tmp), "/dev/%s", dev_name); + + if (ret <= 0 || (size_t)ret >= sizeof(tmp)) { + errno = EINVAL; + return -1; + } + + return open(tmp, O_RDWR); } #endif /* not __APPLE__ */