summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-01-09 10:15:58 -0800
committerKota Tsuyuzaki <bloodeagle40234@gmail.com>2015-01-13 01:27:17 -0800
commitc1eb3e6e6cb5b2557de11beac1253dda37f07e76 (patch)
treeb33404c2f3f2a155d5964007495fc71c20554f79
parenta11fcb022d9c51f13b1ca787c7476403b112cdc0 (diff)
downloadliberasurecode-c1eb3e6e6cb5b2557de11beac1253dda37f07e76.tar.gz
Fix free fragments memories at a backend errorfix-cleanup
When failing at calling a backend encode (i.e. the backend return a minus value), invalid pointer error will occur at liberasurecode_encode_cleanup() because it will work to free the memory from data[i] behind the fragment header. This patch fixes it to use free_fragment_buffer to free whole memory includes the fragment header field. TODO: Add tests (or stub backend) to verify liberasurecode behaviors when a failure returnd from the backend.
-rw-r--r--src/erasurecode.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/erasurecode.c b/src/erasurecode.c
index ad29673..64381e7 100644
--- a/src/erasurecode.c
+++ b/src/erasurecode.c
@@ -341,7 +341,7 @@ int liberasurecode_encode_cleanup(int desc,
if (encoded_data) {
for (i = 0; i < k; i++) {
- free(encoded_data[i]);
+ free_fragment_buffer(encoded_data[i]);
}
free(encoded_data);
@@ -349,7 +349,7 @@ int liberasurecode_encode_cleanup(int desc,
if (encoded_parity) {
for (i = 0; i < m; i++) {
- free(encoded_parity[i]);
+ free_fragment_buffer(encoded_parity[i]);
}
free(encoded_parity);