From mboxrd@z Thu Jan 1 00:00:00 1970 From: kupcevic@sourceware.org Date: 24 Oct 2006 21:51:06 -0000 Subject: [Cluster-devel] conga/ricci/common File.cpp Message-ID: <20061024215106.6809.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit CVSROOT: /cvs/cluster Module name: conga Changes by: kupcevic at sourceware.org 2006-10-24 21:51:05 Modified files: ricci/common : File.cpp Log message: ricci: shred at wrong time Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/File.cpp.diff?cvsroot=cluster&r1=1.1&r2=1.2 --- conga/ricci/common/File.cpp 2006/10/23 18:43:35 1.1 +++ conga/ricci/common/File.cpp 2006/10/24 21:51:05 1.2 @@ -120,6 +120,8 @@ String File::path() const { + MutexLocker l(*_mutex); + return _path; } @@ -143,12 +145,18 @@ long len = size(); auto_ptr buff(new char[len]); - ((fstream*) _pimpl->fs)->seekg(0, ios::beg); - check_failed(); - ((fstream*) _pimpl->fs)->read(buff.get(), len); - ::shred(buff.get(), len); - check_failed(); - return String(buff.get(), len); + try { + ((fstream*) _pimpl->fs)->seekg(0, ios::beg); + check_failed(); + ((fstream*) _pimpl->fs)->read(buff.get(), len); + check_failed(); + String ret(buff.get(), len); + ::shred(buff.get(), len); + return ret; + } catch ( ... ) { + ::shred(buff.get(), len); + throw; + } } File&