Fixing buffer overflow with cwd command (FILENAME_MAX must be at 50 +1 bytes)

This commit is contained in:
jede
2017-09-25 21:39:57 +02:00
parent 86741cb1dd
commit d8904c550b
4 changed files with 14 additions and 6 deletions

View File

@@ -47,6 +47,8 @@ FILENAME_MAX = 64+1
FILENAME_MAX = 12+1 FILENAME_MAX = 12+1
.elseif .defined(__LUNIX__) .elseif .defined(__LUNIX__)
FILENAME_MAX = 80+1 FILENAME_MAX = 80+1
.elseif .defined(__TELESTRAT__)
FILENAME_MAX = 50+1
.else .else
FILENAME_MAX = 16+1 FILENAME_MAX = 16+1
.endif .endif

View File

@@ -15,7 +15,7 @@ FUNCTKEY = $A5
FNAME_LEN = 11 ; maximum length of file-name FNAME_LEN = 11 ; maximum length of file-name
FILENAME_MAX = 100 FILENAME_MAX = 200
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
; Zero page ; Zero page
@@ -151,6 +151,7 @@ SCRX := $220
SCRY := $224 SCRY := $224
ADSCRL := $218 ADSCRL := $218
ADSCRH := $21C ADSCRH := $21C
IRQVECTOR := $2FA
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------

View File

@@ -75,6 +75,8 @@ extern FILE* stderr;
# define FILENAME_MAX (12+1) # define FILENAME_MAX (12+1)
#elif defined(__LUNIX__) #elif defined(__LUNIX__)
# define FILENAME_MAX (80+1) # define FILENAME_MAX (80+1)
#elif defined(__TELESTRAT__)
# define FILENAME_MAX (50+1)
#else #else
# define FILENAME_MAX (16+1) # define FILENAME_MAX (16+1)
#endif #endif

View File

@@ -1,5 +1,5 @@
; ;
; Oliver Schmidt, 18.04.2005 ; Jede (jede@oric.org) 24.09.2017
; ;
.export initcwd .export initcwd
@@ -10,14 +10,17 @@
initcwd: initcwd:
ldx #PWD_PTR ldx #PWD_PTR
BRK_TELEMON XVARS BRK_TELEMON XVARS
sta tmp1
sty tmp1+1 sta ptr1
sty ptr1+1
ldy #$00 ldy #$00
loop: loop:
lda (tmp1),y lda (ptr1),y
beq done beq done
sta __cwd,y sta __cwd,y
iny iny