From: Felix Fietkau Date: Fri, 24 Oct 2014 12:44:34 +0000 (+0200) Subject: system-linux: fix a glob related memleak X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=commitdiff_plain;h=9af0e57ce2c76db2ce49ea9fbfb5766da6000ec6 system-linux: fix a glob related memleak Signed-off-by: Felix Fietkau --- 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;