]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/misc/kgdbts.c
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / drivers / misc / kgdbts.c
index e4ff50b95a5ee8c5f834ab17f4834795108eaa8f..fcb6ec1af173dfe22e3130ef6016f348c3f24858 100644 (file)
@@ -712,6 +712,12 @@ static int run_simple_test(int is_get_char, int chr)
 
        /* End of packet == #XX so look for the '#' */
        if (put_buf_cnt > 3 && put_buf[put_buf_cnt - 3] == '#') {
+               if (put_buf_cnt >= BUFMAX) {
+                       eprintk("kgdbts: ERROR: put buffer overflow on"
+                               " '%s' line %i\n", ts.name, ts.idx);
+                       put_buf_cnt = 0;
+                       return 0;
+               }
                put_buf[put_buf_cnt] = '\0';
                v2printk("put%i: %s\n", ts.idx, put_buf);
                /* Trigger check here */
@@ -885,16 +891,16 @@ static void kgdbts_run_tests(void)
        int nmi_sleep = 0;
        int i;
 
-       ptr = strstr(config, "F");
+       ptr = strchr(config, 'F');
        if (ptr)
                fork_test = simple_strtol(ptr + 1, NULL, 10);
-       ptr = strstr(config, "S");
+       ptr = strchr(config, 'S');
        if (ptr)
                do_sys_open_test = simple_strtol(ptr + 1, NULL, 10);
-       ptr = strstr(config, "N");
+       ptr = strchr(config, 'N');
        if (ptr)
                nmi_sleep = simple_strtol(ptr+1, NULL, 10);
-       ptr = strstr(config, "I");
+       ptr = strchr(config, 'I');
        if (ptr)
                sstep_test = simple_strtol(ptr+1, NULL, 10);