summaryrefslogtreecommitdiff
path: root/src/XmlParser.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-10-29 22:40:07 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-10-29 23:42:58 +0900
commitf42199b46df776abb80f3095330660fc556b7623 (patch)
treed493147fb23ba64d6c87789aad8ee56e9bdafa55 /src/XmlParser.cc
parent8566d050ff69fb0493cce6d8534ee57a8bdf86df (diff)
Fixed resource leak
Diffstat (limited to 'src/XmlParser.cc')
-rw-r--r--src/XmlParser.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/XmlParser.cc b/src/XmlParser.cc
index c011927e..1a0ad331 100644
--- a/src/XmlParser.cc
+++ b/src/XmlParser.cc
@@ -47,11 +47,13 @@ bool parseFile(const std::string& filename, ParserStateMachine* psm)
fd = STDIN_FILENO;
} else {
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) {
return false;
}
}
+ auto_delete_r<int, int> fdDeleter(fd, close);
XmlParser ps(psm);
char buf[4096];
ssize_t nread;