mirror of https://github.com/aria2/aria2
Fixed resource leak
parent
8566d050ff
commit
f42199b46d
|
@ -93,10 +93,12 @@ typename Parser::ResultType parseFile(Parser& parser,
|
||||||
int fd;
|
int fd;
|
||||||
// TODO Overrode a2open(const char*,..) and a2open(const std::wstring&,..)
|
// TODO Overrode a2open(const char*,..) and a2open(const std::wstring&,..)
|
||||||
while((fd = a2open(utf8ToWChar(filename).c_str(),
|
while((fd = a2open(utf8ToWChar(filename).c_str(),
|
||||||
O_BINARY | O_RDONLY, OPEN_MODE)) == -1 && fd != EINTR);
|
O_BINARY | O_RDONLY, OPEN_MODE)) == -1
|
||||||
|
&& errno != EINTR);
|
||||||
if(fd == -1) {
|
if(fd == -1) {
|
||||||
return Parser::ParserStateMachineType::noResult();
|
return Parser::ParserStateMachineType::noResult();
|
||||||
}
|
}
|
||||||
|
auto_delete_r<int, int> fdDeleter(fd, close);
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
ssize_t nread;
|
ssize_t nread;
|
||||||
ssize_t nproc;
|
ssize_t nproc;
|
||||||
|
|
|
@ -47,11 +47,13 @@ bool parseFile(const std::string& filename, ParserStateMachine* psm)
|
||||||
fd = STDIN_FILENO;
|
fd = STDIN_FILENO;
|
||||||
} else {
|
} else {
|
||||||
while((fd = a2open(utf8ToWChar(filename).c_str(),
|
while((fd = a2open(utf8ToWChar(filename).c_str(),
|
||||||
O_BINARY | O_RDONLY, OPEN_MODE)) == -1 && fd != EINTR);
|
O_BINARY | O_RDONLY, OPEN_MODE)) == -1
|
||||||
|
&& errno != EINTR);
|
||||||
if(fd == -1) {
|
if(fd == -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
auto_delete_r<int, int> fdDeleter(fd, close);
|
||||||
XmlParser ps(psm);
|
XmlParser ps(psm);
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
ssize_t nread;
|
ssize_t nread;
|
||||||
|
|
Loading…
Reference in New Issue