]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librgw: check variant type, fix reversed check for write trans
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 16 Dec 2015 16:06:29 +0000 (11:06 -0500)
committerMatt Benjamin <mbenjamin@redhat.com>
Fri, 12 Feb 2016 17:06:49 +0000 (12:06 -0500)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/rgw/rgw_file.cc

index 577dae12e1ae669232f5f21ece879315ab62062e..2fd95f7833a639481fb6f700d792a975cca3fbb5 100644 (file)
@@ -112,6 +112,9 @@ int RGWFileHandle::write(uint64_t off, size_t len, size_t *bytes_written,
     buffer::create_static(len, static_cast<char*>(buffer)));
 
   file* f = get<file>(&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<file>(&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();