]> granicus.if.org Git - vnstat/commitdiff
fix resource leak in db_getinterfaceinfo
authorChristian Göttsche <cgzones@googlemail.com>
Fri, 6 Sep 2019 15:54:57 +0000 (17:54 +0200)
committerChristian Göttsche <cgzones@googlemail.com>
Fri, 6 Sep 2019 15:54:57 +0000 (17:54 +0200)
if 'ifaceidin' gets initialized but it's length is 0, it is not freed

found by Coverity

src/dbsql.c

index 12fd51b106c6f278c7327232b8469472f20f14a4..c55963746ade450e20a4dade5cb7948faf033ec8 100644 (file)
@@ -616,6 +616,7 @@ int db_getinterfaceinfo(const char *iface, interfaceinfo *info)
        } else {
                ifaceidin = db_getinterfaceidin(iface);
                if (ifaceidin == NULL || strlen(ifaceidin) < 1) {
+                       free(ifaceidin);
                        return 0;
                }
                sqlite3_snprintf(512, sql, "select \"%q\", NULL, max(active), max(strftime('%%s', created, 'utc')), min(strftime('%%s', updated, 'utc')), 0, 0, sum(rxtotal), sum(txtotal) from interface where id in (%q)", iface, ifaceidin);