aboutsummaryrefslogtreecommitdiffstats
path: root/ext/syck/syck.c
diff options
context:
space:
mode:
authorwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-11-25 19:51:38 +0000
committerwhy <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-11-25 19:51:38 +0000
commitbab2e6cfdf341baa65533be655563d5cb819f6ba (patch)
tree5a3a274aa3c4f18d1d13309699c01174c4466a82 /ext/syck/syck.c
parent3d0d2d5ff1a75dcf32f455f306079f139269f280 (diff)
downloadruby-bab2e6cfdf341baa65533be655563d5cb819f6ba.tar.gz
* ext/syck/token.c: removed YYTOKTMP references which
were causing buffer overflows on large block scalars, comments, quoted scalars and plain scalars. * ext/syck/rubyext.c: dynamic changing of buffer size. * ext/syck/syck.h: default buffer size of 4k. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck/syck.c')
-rw-r--r--ext/syck/syck.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/syck/syck.c b/ext/syck/syck.c
index 8d319379a3..c9aad7a8a5 100644
--- a/ext/syck/syck.c
+++ b/ext/syck/syck.c
@@ -71,9 +71,9 @@ syck_io_str_read( char *buf, SyckIoStr *str, long max_size, long skip )
if ( max_size >= 0 )
{
max_size -= skip;
- if ( max_size < 0 ) max_size = 0;
+ if ( max_size <= 0 ) max_size = 0;
+ else str->ptr += max_size - 1;
- str->ptr += max_size;
if ( str->ptr > str->end )
{
str->ptr = str->end;