diff options
author | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-08 17:17:59 +0100 |
---|---|---|
committer | Danny Al-Gaaf <danny.al-gaaf@bisect.de> | 2013-02-10 10:05:06 +0100 |
commit | 89df090e04ef9fc5aae29122df106b0347786fab (patch) | |
tree | ad3d0ba33cbb600a4b6f50b2c147daa02b658f9e | |
parent | f0ba80756d1c3c313014ad7be18191981fb545be (diff) | |
download | ceph-89df090e04ef9fc5aae29122df106b0347786fab.tar.gz |
rgw/rgw_rest.cc: fix 4K memory leak
Fix 4K memory leak in case RGWClientIO::read() fails in
read_all_chunked_input().
Error from cppcheck was:
Checking src/rgw/rgw_rest.cc...
[src/rgw/rgw_rest.cc:688]: (error) Memory leak: data
Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-rw-r--r-- | src/rgw/rgw_rest.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 72aab14c522..ab3927e7a62 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -684,8 +684,10 @@ static int read_all_chunked_input(req_state *s, char **pdata, int *plen) int read_len = 0, len = 0; do { int r = s->cio->read(data + len, need_to_read, &read_len); - if (r < 0) + if (r < 0) { + free(data); return r; + } len += read_len; |