]> granicus.if.org Git - vnstat/commitdiff
return error if given interface name is longer than supported maximum instead of...
authorTeemu Toivola <git@humdi.net>
Sun, 10 Mar 2019 19:02:26 +0000 (21:02 +0200)
committerTeemu Toivola <git@humdi.net>
Sun, 10 Mar 2019 19:02:26 +0000 (21:02 +0200)
src/vnstat.c
src/vnstati.c

index 2cad4b4a51ca29c3d804f10f61c1fc3b948f1d95..1c9eb91cf1c2b0c5646c9af4461f1575b3a268cc 100644 (file)
@@ -87,6 +87,10 @@ int main(int argc, char *argv[]) {
                        return 0;
                } else if ((strcmp(argv[currentarg],"-i")==0) || (strcmp(argv[currentarg],"--iface")==0)) {
                        if (currentarg+1<argc) {
+                               if (strlen(argv[currentarg+1]) > 31) {
+                                       printf("Error: Interface name is limited to 31 characters.\n");
+                                       return 1;
+                               }
                                strncpy_nt(p.interface, argv[currentarg+1], 32);
                                p.defaultiface = 0;
                                if (debug)
@@ -759,7 +763,11 @@ void handleshowdatabases(PARAMS *p)
 void showoneinterface(PARAMS *p, const char *interface)
 {
        if (!db_getinterfacecountbyname(p->interface)) {
-               printf("Error: Interface \"%s\" not found in database.\n", p->interface);
+               if (strchr(p->interface, '+') == NULL)  {
+                       printf("Error: Interface \"%s\" not found in database.\n", p->interface);
+               } else {
+                       printf("Error: Not all requested interfaces found in database.\n");
+               }
                exit(EXIT_FAILURE);
        }
 
index 8a9ed81465b604143c54ac611a78078c38df3401..d236586a0e2c61aa93af4d94d9260758d794671f 100644 (file)
@@ -70,6 +70,10 @@ int main(int argc, char *argv[])
                        p.help = 1;
                } else if ((strcmp(argv[currentarg],"-i")==0) || (strcmp(argv[currentarg],"--iface"))==0) {
                        if (currentarg+1<argc) {
+                               if (strlen(argv[currentarg+1]) > 31) {
+                                       printf("Error: Interface name is limited to 31 characters.\n");
+                                       return 1;
+                               }
                                strncpy_nt(p.interface, argv[currentarg+1], 32);
                                if (debug)
                                        printf("Used interface: \"%s\"\n", p.interface);