summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Lague-Morin <philippe@screenshot.ca>2011-08-19 00:21:54 -0300
committerPhilippe Lague-Morin <philippe@screenshot.ca>2011-08-19 00:21:54 -0300
commit48c02bf339cbf056d9f202573d57a3d0a95deef2 (patch)
tree5dc1fbe1a0c76bb5408858b5dd9ec82bb92541f6
parente2d080612f566205d16a65fdad05618f92774d4c (diff)
downloadyajl-48c02bf339cbf056d9f202573d57a3d0a95deef2.tar.gz
Edited src/yajl_tree.c via GitHub
-rw-r--r--src/yajl_tree.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/yajl_tree.c b/src/yajl_tree.c
index 111e49f..de76e54 100644
--- a/src/yajl_tree.c
+++ b/src/yajl_tree.c
@@ -421,6 +421,7 @@ yajl_val yajl_tree_parse (const char *input,
yajl_handle handle;
yajl_status status;
+ char * internal_err_str;
context_t ctx = { NULL, NULL, NULL, 0 };
ctx.errbuf = error_buffer;
@@ -438,11 +439,11 @@ yajl_val yajl_tree_parse (const char *input,
status = yajl_complete_parse (handle);
if (status != yajl_status_ok) {
if (error_buffer != NULL && error_buffer_size > 0) {
- snprintf(
- error_buffer, error_buffer_size, "%s",
- (char *) yajl_get_error(handle, 1,
- (const unsigned char *) input,
- strlen(input)));
+ internal_err_str = (char *) yajl_get_error(handle, 1,
+ (const unsigned char *) input,
+ strlen(input));
+ snprintf(error_buffer, error_buffer_size, "%s", internal_err_str);
+ YA_FREE(&(handle->alloc), internal_err_str);
}
yajl_free (handle);
return NULL;