diff options
author | Ravishankar N <ravishankar@redhat.com> | 2015-04-13 05:47:09 +0000 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2015-04-28 22:01:37 -0700 |
commit | de909177699bdf0e084476e8191834be56edd9b0 (patch) | |
tree | 45554b3937e0292ae04130a491719f4758b5a6d8 /xlators | |
parent | 211b75e21e3f4a93307ae47b4fc9dc6cd3681394 (diff) |
quick-read: Do a null check before unref
Backport of http://review.gluster.org/10206
Commit 4ea5b8d2046b9e0bc7f24cdf1b2e72ab8b462c9e seems to have removed the check
as a part of static analyis fixes but I'm seeing errors in the client log.
---------------------
touch /mnt/fuse_mnt/zero-byte-file
echo 3 > /proc/sys/vm/drop_caches
cat /mnt/fuse_mnt/zero-byte-file
mount log:
[2015-04-13 05:52:21.683256] E [iobuf.c:790:iobuf_unref] (-->
/usr/local/lib/libglusterfs.so.0(_gf_log_callingfn+0x232)[0x7feda12c0e24] (-->
/usr/local/lib/libglusterfs.so.0(iobuf_unref+0x56)[0x7feda1304c8e] (-->
/usr/local/lib/glusterfs/3.7dev/xlator/performance/quick-read.so(qr_readv_cached+0x466)[0x7fed95b7e2fc]
(-->
/usr/local/lib/glusterfs/3.7dev/xlator/performance/quick-read.so(qr_readv+0x70)[0x7fed95b7e385]
(-->
/usr/local/lib/libglusterfs.so.0(default_readv_resume+0x270)[0x7feda12d4401]
))))) 0-iobuf: invalid argument: iobuf
---------------------
Change-Id: Ia6b29165cdef8783a716fe1e72d3d13bf0220aae
BUG: 1214168
Signed-off-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-on: http://review.gluster.org/10329
Tested-by: NetBSD Build System
Reviewed-by: Raghavendra Talur <rtalur@redhat.com>
Tested-by: Raghavendra Talur <rtalur@redhat.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/performance/quick-read/src/quick-read.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xlators/performance/quick-read/src/quick-read.c b/xlators/performance/quick-read/src/quick-read.c index aa44c5d388b..53f9a5d44ce 100644 --- a/xlators/performance/quick-read/src/quick-read.c +++ b/xlators/performance/quick-read/src/quick-read.c @@ -587,9 +587,11 @@ unlock: STACK_UNWIND_STRICT (readv, frame, op_ret, 0, &iov, 1, &buf, iobref, xdata); } - iobuf_unref (iobuf); + if (iobuf) + iobuf_unref (iobuf); - iobref_unref (iobref); + if (iobref) + iobref_unref (iobref); return op_ret; } |