summaryrefslogtreecommitdiff
path: root/ext/syck/yaml2byte.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/syck/yaml2byte.c')
-rw-r--r--ext/syck/yaml2byte.c15
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;