From: Matt Benjamin Date: Wed, 16 Dec 2015 16:06:29 +0000 (-0500) Subject: librgw: check variant type, fix reversed check for write trans X-Git-Tag: v10.1.0~382^2~100 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0090da6d49ed0228bd96174f86ed8271934a7cf5;p=ceph.git librgw: check variant type, fix reversed check for write trans Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc index 577dae12e1ae..2fd95f7833a6 100644 --- a/src/rgw/rgw_file.cc +++ b/src/rgw/rgw_file.cc @@ -112,6 +112,9 @@ int RGWFileHandle::write(uint64_t off, size_t len, size_t *bytes_written, buffer::create_static(len, static_cast(buffer))); file* f = get(&variant_type); + if (! f) + return EISDIR; + if (! f->write_req) { /* start */ std::string object_name = full_object_name(); @@ -138,7 +141,7 @@ int RGWFileHandle::close() int rc = 0; file* f = get(&variant_type); - if (! f->write_req) { + if (f && (f->write_req)) { rc = librgw.get_fe()->finish_req(f->write_req); if (! rc) { rc = f->write_req->get_ret();