diff options
| author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-19 16:38:02 +0000 |
|---|---|---|
| committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-08-19 16:38:02 +0000 |
| commit | 2c94aacd403be9fdcdeb3dbe300775f6665f2708 (patch) | |
| tree | d9ea3de53d9d04bd0234fd061fdcfda9e57910ec /ext/syck/handler.c | |
| parent | a326fa7b6eb5ee65c9d5a7cf06d22dc9e034cfc1 (diff) | |
| download | ruby-2c94aacd403be9fdcdeb3dbe300775f6665f2708.tar.gz ruby-2c94aacd403be9fdcdeb3dbe300775f6665f2708.tar.xz ruby-2c94aacd403be9fdcdeb3dbe300775f6665f2708.zip | |
* ext/syck/syck.h: Parser definition problems on HP-UX. [ruby-talk:79389]
* ext/syck/handler.c (syck_hdlr_get_anchor): Memory leak.
* ext/syck/syck.s (syck_io_file_read): Bad arguments to fread.
* ext/syck/rubyext.c: Tainting issues.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck/handler.c')
| -rw-r--r-- | ext/syck/handler.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/ext/syck/handler.c b/ext/syck/handler.c index 0a7ee8c10..ca15fd03a 100644 --- a/ext/syck/handler.c +++ b/ext/syck/handler.c @@ -1,5 +1,5 @@ /* - * handler.h + * handler.c * * $Author$ * $Date$ @@ -73,6 +73,7 @@ syck_hdlr_get_anchor( SyckParser *p, char *a ) { if ( n != (void *)1 ) { + S_FREE( a ); return n; } else @@ -94,7 +95,16 @@ syck_hdlr_get_anchor( SyckParser *p, char *a ) { n = (p->bad_anchor_handler)( p, a ); } - n->anchor = a; + + if ( n->anchor ) + { + S_FREE( a ); + } + else + { + n->anchor = a; + } + return n; } |
