nvram: improve argument check when program start
[openwrt/openwrt.git] / package / utils / nvram / src / cli.c
index 149d3074747fef3a21b8ef78c60dd7dd35c22ed9..538bdce64875c11e5886c22c3f5ccbb2fe413a79 100644 (file)
@@ -155,15 +155,16 @@ int main( int argc, const char *argv[] )
        int done = 0;
        int i;
 
+       if( argc < 2 ) {
+               usage();
+               return 1;
+       }
+
        /* Ugly... iterate over arguments to see whether we can expect a write */
-       for( i = 1; i < argc; i++ )
-               if( ( !strcmp(argv[i], "set")   && ++i < argc ) ||
-                       ( !strcmp(argv[i], "unset") && ++i < argc ) ||
-                       !strcmp(argv[i], "commit") )
-               {
-                       write = 1;
-                       break;
-               }
+       if( ( !strcmp(argv[1], "set")  && 2 < argc ) ||
+               ( !strcmp(argv[1], "unset") && 2 < argc ) ||
+               !strcmp(argv[1], "commit") )
+               write = 1;
 
 
        nvram = write ? nvram_open_staging() : nvram_open_rdonly();