Merge "Fix leaks in wifi_chip.cpp."

This commit is contained in:
Treehugger Robot
2019-06-20 21:06:20 +00:00
committed by Gerrit Code Review

View File

@@ -111,16 +111,16 @@ std::string getP2pIfaceName() {
bool removeOldFilesInternal() { bool removeOldFilesInternal() {
time_t now = time(0); time_t now = time(0);
const time_t delete_files_before = now - kMaxRingBufferFileAgeSeconds; const time_t delete_files_before = now - kMaxRingBufferFileAgeSeconds;
DIR* dir_dump = opendir(kTombstoneFolderPath); std::unique_ptr<DIR, decltype(&closedir)> dir_dump(
opendir(kTombstoneFolderPath), closedir);
if (!dir_dump) { if (!dir_dump) {
PLOG(ERROR) << "Failed to open directory"; PLOG(ERROR) << "Failed to open directory";
return false; return false;
} }
unique_fd dir_auto_closer(dirfd(dir_dump));
struct dirent* dp; struct dirent* dp;
bool success = true; bool success = true;
std::list<std::pair<const time_t, std::string>> valid_files; std::list<std::pair<const time_t, std::string>> valid_files;
while ((dp = readdir(dir_dump))) { while ((dp = readdir(dir_dump.get()))) {
if (dp->d_type != DT_REG) { if (dp->d_type != DT_REG) {
continue; continue;
} }
@@ -242,13 +242,13 @@ bool cpioWriteFileTrailer(int out_fd) {
size_t cpioArchiveFilesInDir(int out_fd, const char* input_dir) { size_t cpioArchiveFilesInDir(int out_fd, const char* input_dir) {
struct dirent* dp; struct dirent* dp;
size_t n_error = 0; size_t n_error = 0;
DIR* dir_dump = opendir(input_dir); std::unique_ptr<DIR, decltype(&closedir)> dir_dump(opendir(input_dir),
closedir);
if (!dir_dump) { if (!dir_dump) {
PLOG(ERROR) << "Failed to open directory"; PLOG(ERROR) << "Failed to open directory";
return ++n_error; return ++n_error;
} }
unique_fd dir_auto_closer(dirfd(dir_dump)); while ((dp = readdir(dir_dump.get()))) {
while ((dp = readdir(dir_dump))) {
if (dp->d_type != DT_REG) { if (dp->d_type != DT_REG) {
continue; continue;
} }