]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
radosgw-admin: fix fd leak in read_input()
authorSage Weil <sage@inktank.com>
Thu, 9 May 2013 15:50:05 +0000 (08:50 -0700)
committerSage Weil <sage@inktank.com>
Thu, 9 May 2013 17:48:59 +0000 (10:48 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/rgw/rgw_admin.cc

index edbe887c20836b0189b9b098e1ca287b54e4f326..fff32ca435db97e25a80525238971e16cf8bc8f3 100644 (file)
@@ -399,24 +399,26 @@ static int read_input(const string& infile, bufferlist& bl)
 
 #define READ_CHUNK 8196
   int r;
+  int err;
 
   do {
     char buf[READ_CHUNK];
 
     r = read(fd, buf, READ_CHUNK);
     if (r < 0) {
-      int err = -errno;
+      err = -errno;
       cerr << "error while reading input" << std::endl;
-      return err;
+      goto out;
     }
     bl.append(buf, r);
   } while (r > 0);
+  err = 0;
 
+ out:
   if (infile.size()) {
     close(fd);
   }
-
-  return 0;
+  return err;
 }
 
 template <class T>