From: Sage Weil Date: Thu, 9 May 2013 15:50:05 +0000 (-0700) Subject: radosgw-admin: fix fd leak in read_input() X-Git-Tag: v0.63~49^2^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad073c2b03b03a796753d1fd98ea0df28e75d39b;p=ceph.git radosgw-admin: fix fd leak in read_input() Signed-off-by: Sage Weil --- diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index edbe887c2083..fff32ca435db 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -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