From 360b0a015aba72f62ea2ffee4f52ce2b9132a2d1 Mon Sep 17 00:00:00 2001 From: why Date: Tue, 19 Aug 2003 16:38:02 +0000 Subject: * 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@4414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/syck/handler.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'ext/syck/handler.c') diff --git a/ext/syck/handler.c b/ext/syck/handler.c index 0a7ee8c10f..ca15fd03a2 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; } -- cgit v1.2.3