#include <copyfile.h>
#include <sandbox.h>
#include <set>
+#include <assert.h>
#define kAtomicFileMaxBlockSize INT_MAX
{
if (mFileRef >= 0)
{
- AtomicFile::rclose(mFileRef);
+ // In release mode, the assert() is compiled out so rv may be unused.
+ __unused int rv = AtomicFile::rclose(mFileRef);
+ assert(rv == 0);
secdebug("atomicfile", "%p closed %s", this, mPath.c_str());
}
int error = errno;
secdebug("atomicfile", "lseek(%s, END): %s", path, strerror(error));
AtomicFile::rclose(mFileRef);
+ mFileRef = -1;
UnixError::throwMe(error);
}
{
int error = errno;
secdebug("atomicfile", "lseek(%s, END): %s", mPath.c_str(), strerror(error));
- AtomicFile::rclose(mFileRef);
+ if (mFileRef >= 0) {
+ AtomicFile::rclose(mFileRef);
+ mFileRef = -1;
+ }
UnixError::throwMe(error);
}
}
{
int error = errno;
secdebug("atomicfile", "lseek(%s, END): %s", mPath.c_str(), strerror(error));
- AtomicFile::rclose(mFileRef);
+ if (mFileRef >= 0) {
+ AtomicFile::rclose(mFileRef);
+ mFileRef = -1;
+ }
UnixError::throwMe(error);
}
}