diff options
Diffstat (limited to 'ext/syck/yaml2byte.c')
-rw-r--r-- | ext/syck/yaml2byte.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/ext/syck/yaml2byte.c b/ext/syck/yaml2byte.c index 46173e861e..61cd8c8eac 100644 --- a/ext/syck/yaml2byte.c +++ b/ext/syck/yaml2byte.c @@ -226,12 +226,17 @@ syck_yaml2byte(char *yamlstr) syck_parser_implicit_typing( parser, 1 ); syck_parser_taguri_expansion( parser, 1 ); oid = syck_parse( parser ); - syck_lookup_sym( parser, oid, (char **)&sav ); - ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 ); - ret[0] = '\0'; - strcat( ret, "D\n" ); - strcat( ret, sav->buffer ); + if ( syck_lookup_sym( parser, oid, (char **)&sav ) == 1 ) { + ret = S_ALLOC_N( char, strlen( sav->buffer ) + 3 ); + ret[0] = '\0'; + strcat( ret, "D\n" ); + strcat( ret, sav->buffer ); + } + else + { + ret = NULL; + } syck_free_parser( parser ); return ret; |