]> git.sur5r.net Git - cc65/commitdiff
Fixing buffer overflow with cwd command (FILENAME_MAX must be at 50 +1 bytes)
authorjede <jede@oric.org>
Mon, 25 Sep 2017 19:39:57 +0000 (21:39 +0200)
committerjede <jede@oric.org>
Mon, 25 Sep 2017 19:39:57 +0000 (21:39 +0200)
asminc/stdio.inc
asminc/telestrat.inc
include/stdio.h
libsrc/telestrat/initcwd.s

index 18a7541e078fcca9ecba3860b5fe8945006b457a..3b22c47f68e0953e68ac76507b545dd4f00f2f9c 100644 (file)
@@ -47,6 +47,8 @@ FILENAME_MAX    = 64+1
 FILENAME_MAX    = 12+1
 .elseif .defined(__LUNIX__)
 FILENAME_MAX    = 80+1
+.elseif .defined(__TELESTRAT__)
+FILENAME_MAX    = 50+1
 .else
 FILENAME_MAX    = 16+1
 .endif
index 48e3a9347d8133da1caef2da20e9fbdc7c42c652..ffe78ad6ed14786bf9dfb95db1079c433b1c6c03 100644 (file)
@@ -15,7 +15,7 @@ FUNCTKEY        = $A5
 
 FNAME_LEN       = 11            ; maximum length of file-name
 
-FILENAME_MAX    = 100
+FILENAME_MAX    = 200
 
 ; ---------------------------------------------------------------------------
 ; Zero page
@@ -151,6 +151,7 @@ SCRX             := $220
 SCRY             := $224
 ADSCRL           := $218
 ADSCRH           := $21C
+IRQVECTOR        := $2FA
 
 
 ; ---------------------------------------------------------------------------
index c2c735cb017f8190471ae805f39a2a7015330cb5..a3facd513522dbdfe0cdd9ad618615bed8bc053f 100644 (file)
@@ -75,6 +75,8 @@ extern FILE* stderr;
 #  define FILENAME_MAX  (12+1)
 #elif defined(__LUNIX__)
 #  define FILENAME_MAX  (80+1)
+#elif defined(__TELESTRAT__)
+#  define FILENAME_MAX  (50+1)
 #else
 #  define FILENAME_MAX  (16+1)
 #endif
index df2ceb63bcd1ed56594a241ab74aa280d5571517..f359ebeb4bad91d80186ee7e25758beebdbef116 100644 (file)
@@ -1,5 +1,5 @@
 ;
-; Oliver Schmidt, 18.04.2005
+; Jede (jede@oric.org) 24.09.2017
 ;
 
         .export         initcwd
 
 
 initcwd:
+       
         ldx     #PWD_PTR
         BRK_TELEMON XVARS
-        sta     tmp1
-        sty     tmp1+1
-
+        
+        sta     ptr1
+        sty     ptr1+1
+        
         ldy     #$00
+        
 loop:        
-        lda     (tmp1),y
+        lda     (ptr1),y
         beq     done
         sta     __cwd,y
         iny