]> git.sur5r.net Git - cc65/blobdiff - libsrc/common/vsnprintf.s
Fixed a hardware-stack leak.
[cc65] / 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