]> git.sur5r.net Git - cc65/commitdiff
Fixed a hardware-stack leak.
authorGreg King <gregdk@users.sf.net>
Sat, 18 Jul 2015 00:36:56 +0000 (20:36 -0400)
committerGreg King <gregdk@users.sf.net>
Sat, 18 Jul 2015 00:36:56 +0000 (20:36 -0400)
libsrc/common/vsnprintf.s

index 01bcd64064e86ca641c60286af12e7cbae6d033b..228e531d0430b72829c6bfdc9aef1a2b75264e86 100644 (file)
@@ -2,7 +2,7 @@
 ; int __fastcall__ vsnprintf (char* Buf, size_t size, const char* Format, va_list ap);
 ;
 ; 2009-09-26, Ullrich von Bassewitz
-; 2015-07-09, Greg King
+; 2015-07-17, Greg King
 ;
 
         .export         _vsnprintf, vsnprintf
@@ -131,12 +131,15 @@ L4:     lda     ccount+0
 
 ; Bail out if size is too high.
 
-L9:     lda     #ERANGE
+L9:     ldy     #ERANGE
         .byte   $2C             ;(bit $xxxx)
 
 ; NULL buffer pointers usually are invalid.
 
-L0:     lda     #EINVAL
+L0:     ldy     #EINVAL
+        pla                     ; Drop ap
+        pla
+        tya
         jsr     __directerrno   ; Return -1
         jmp     incsp6          ; Drop parameters