diff options
author | Dave Beckett <dave@dajobe.org> | 2015-05-02 15:22:03 -0700 |
---|---|---|
committer | Dave Beckett <dave@dajobe.org> | 2015-05-02 15:22:03 -0700 |
commit | ce1c7a06f386cbb76319da753d51858dad865f29 (patch) | |
tree | 634134b44edb59b27d7e89e9e728f15d6abd1994 | |
parent | af2be0019b9855fb72543ceb70f141c1e1b210e8 (diff) | |
download | raptor-ce1c7a06f386cbb76319da753d51858dad865f29.tar.gz |
Fix librdfa end_element() generation without sprintf
-rw-r--r-- | librdfa/rdfa.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/librdfa/rdfa.c b/librdfa/rdfa.c index de8efbe1..6dadbe0b 100644 --- a/librdfa/rdfa.c +++ b/librdfa/rdfa.c @@ -1024,8 +1024,8 @@ static void end_element(void* parser_context, const char* name, context_stack->items[context_stack->num_items - 1]->data; /* append the text to the current context's XML literal */ - size_t name_len = strlen(name) + 3; - char* buffer = (char*)malloc(name_len + 1); + size_t name_len = strlen(name); + char* buffer = (char*)malloc(name_len + 3 + 1); #if defined(DEBUG) && DEBUG > 0 printf("DEBUG: </%s>\n", name); @@ -1035,9 +1035,10 @@ static void end_element(void* parser_context, const char* name, #endif buffer[0] = '<'; - memcpy(buffer + 1, name, name_len); - buffer[name_len + 1] = '>'; - buffer[name_len + 2] = '\0'; + buffer[1] = '/'; + memcpy(buffer + 2, name, name_len); + buffer[name_len + 2] = '>'; + buffer[name_len + 3] = '\0'; if(context->xml_literal == NULL) { context->xml_literal = |