From 9af0e57ce2c76db2ce49ea9fbfb5766da6000ec6 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 24 Oct 2014 14:44:34 +0200 Subject: [PATCH] system-linux: fix a glob related memleak Signed-off-by: Felix Fietkau --- system-linux.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/system-linux.c b/system-linux.c index 7ae9e27..057bc39 100644 --- a/system-linux.c +++ b/system-linux.c @@ -443,17 +443,18 @@ static bool system_is_bridge(const char *name, char *buf, int buflen) static char *system_get_bridge(const char *name, char *buf, int buflen) { char *path; - ssize_t len; + ssize_t len = -1; glob_t gl; snprintf(buf, buflen, "/sys/devices/virtual/net/*/brif/%s/bridge", name); if (glob(buf, GLOB_NOSORT, NULL, &gl) < 0) return NULL; - if (gl.gl_pathc == 0) - return NULL; + if (gl.gl_pathc > 0) + len = readlink(gl.gl_pathv[0], buf, buflen); + + globfree(&gl); - len = readlink(gl.gl_pathv[0], buf, buflen); if (len < 0) return NULL; -- 2.25.1