diff options
author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-25 19:51:38 +0000 |
---|---|---|
committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-25 19:51:38 +0000 |
commit | bab2e6cfdf341baa65533be655563d5cb819f6ba (patch) | |
tree | 5a3a274aa3c4f18d1d13309699c01174c4466a82 /ext/syck/syck.c | |
parent | 3d0d2d5ff1a75dcf32f455f306079f139269f280 (diff) |
* 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.c | 4 |
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; |