summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarshavardhana <harsha@harshavardhana.net>2013-12-23 02:52:12 -0800
committerVijay Bellur <vbellur@redhat.com>2013-12-29 23:48:50 -0800
commitd85726d19432384e2c3dd6ceff4b7b4ec3f8f57a (patch)
tree3d5de0d9887dd3bcb36371dc5f5047c7976c2872
parentefcfb60f87f6d5ce4aa8ec7f4cd3bbe51a87f538 (diff)
crypt: On calloc failure follow goto statement
At -------------------------------------------- 1423 if (local->vec.iov_base == NULL) { -------------------------------------------- This condition being true leads to NULL pointer to be passed into `memcpy` later at ---------------------------------------------------- 1432 memcpy((char *)local->vec.iov_base + copied, ---------------------------------------------------- Avoid this by clean exit through a goto statement with in the conditional. Change-Id: I2546b7dd634dc251adae8ca39497c4c3ef520f62 BUG: 1030058 Signed-off-by: Harshavardhana <harsha@harshavardhana.net> Reviewed-on: http://review.gluster.org/6576 Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com> Reviewed-by: Edward Shishkin <edward.shishkin@gmail.com> Tested-by: Edward Shishkin <edward.shishkin@gmail.com> Tested-by: Gluster Build System <jenkins@build.gluster.com>
-rw-r--r--xlators/encryption/crypt/src/crypt.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/xlators/encryption/crypt/src/crypt.c b/xlators/encryption/crypt/src/crypt.c
index db2e6d83cf5..47ff38e501d 100644
--- a/xlators/encryption/crypt/src/crypt.c
+++ b/xlators/encryption/crypt/src/crypt.c
@@ -1421,8 +1421,11 @@ static int32_t prune_write(call_frame_t *frame,
gf_crypt_mt_data);
if (local->vec.iov_base == NULL) {
+ gf_log(this->name, GF_LOG_WARNING,
+ "Failed to calloc head block for prune");
local->op_ret = -1;
local->op_errno = ENOMEM;
+ goto put_one_call;
}
for (i = 0; i < count; i++) {
to_copy = vec[i].iov_len;