]> Chaos Git - corbenik/ctrulib.git/commitdiff
check parameters are valid as we parse
authorDave Murphy <davem@devkitpro.org>
Sat, 13 Dec 2014 02:32:21 +0000 (02:32 +0000)
committerDave Murphy <davem@devkitpro.org>
Sat, 13 Dec 2014 02:32:21 +0000 (02:32 +0000)
libctru/source/console.c

index 081473e51aa587f870d78dc493071e7c22f0387d..a6e4ce227b8869b2d8c852db4bc7bc1e822837a8 100644 (file)
@@ -207,14 +207,19 @@ ssize_t con_write(struct _reent *r,int fd,const char *ptr, size_t len) {
 \r
                if ( chr == 0x1b && *tmp == '[' ) {\r
                        bool escaping = true;\r
-                       char *escapeseq = tmp;\r
-                       int escapelen = 0;\r
+                       char *escapeseq = tmp++;\r
+                       int escapelen = 1;\r
+                       i++; count++;\r
 \r
                        do {\r
                                chr = *(tmp++);\r
                                i++; count++; escapelen++;\r
                                int parameter, assigned, consumed;\r
 \r
+                               // make sure parameters are positive values and delimited by semicolon\r
+                               if((chr >= '0' && chr <= '9') || chr == ';')\r
+                                       continue;\r
+\r
                                switch (chr) {\r
                                        //---------------------------------------\r
                                        // Cursor directional movement\r