Making note of my changes
[oweals/busybox.git] / dmesg.c
diff --git a/dmesg.c b/dmesg.c
index aa26f5836c7e9c6e6b319d875c84920a96d614dc..e38fd55551cebfb6a87c862b0f84d73dc5e914ba 100644 (file)
--- a/dmesg.c
+++ b/dmesg.c
@@ -44,10 +44,15 @@ int dmesg_main( int argc, char** argv )
    int  level = 0;
    int  lastc;
    int  cmd = 3;
+   int stopDoingThat;
+
+   argc--;
+   argv++;
 
     /* Parse any options */
     while (argc && **argv == '-') {
-       while (*++(*argv))
+       stopDoingThat = FALSE;
+       while (stopDoingThat == FALSE && *++(*argv)) {
            switch (**argv) {
            case 'c':
                cmd = 4;
@@ -57,19 +62,22 @@ int dmesg_main( int argc, char** argv )
                if (--argc == 0)
                    goto end;
                level = atoi (*(++argv));
-               --argc;
-               ++argv;
+               if (--argc > 0)
+                   ++argv;
+               stopDoingThat = TRUE;
                break;
            case 's':
                if (--argc == 0)
                    goto end;
                bufsize = atoi (*(++argv));
-               --argc;
-               ++argv;
+               if (--argc > 0)
+                   ++argv;
+               stopDoingThat = TRUE;
                break;
            default:
                goto end;
            }
+       }
     }
    
    if (argc > 1) {