diff options
author | Petri Lehtinen <petri@digip.org> | 2009-10-15 20:54:32 +0300 |
---|---|---|
committer | Petri Lehtinen <petri@digip.org> | 2009-10-15 20:54:32 +0300 |
commit | 79009e62c10bab0869d61edfaa6c813f03f027bc (patch) | |
tree | 803fdaf31c3886614a68008b72c03cd8dcbda54f /src | |
parent | 76999799ed675a8d6922a8f7c61cf1712f6f3d1f (diff) | |
download | jansson-79009e62c10bab0869d61edfaa6c813f03f027bc.zip jansson-79009e62c10bab0869d61edfaa6c813f03f027bc.tar.gz jansson-79009e62c10bab0869d61edfaa6c813f03f027bc.tar.bz2 |
json_dumps: Close the strbuffer if dumping fails
Diffstat (limited to 'src')
-rw-r--r-- | src/dump.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -242,11 +242,15 @@ char *json_dumps(const json_t *json, unsigned long flags) if(strbuffer_init(&strbuff)) return NULL; - if(do_dump(json, flags, 0, dump_to_strbuffer, (void *)&strbuff)) + if(do_dump(json, flags, 0, dump_to_strbuffer, (void *)&strbuff)) { + strbuffer_close(&strbuff); return NULL; + } - if(dump_to_strbuffer("\n", 1, (void *)&strbuff)) + if(dump_to_strbuffer("\n", 1, (void *)&strbuff)) { + strbuffer_close(&strbuff); return NULL; + } result = strdup(strbuffer_value(&strbuff)); strbuffer_close(&strbuff); |