diff options
author | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-04-01 22:06:52 +0000 |
---|---|---|
committer | Dominik Riebeling <Dominik.Riebeling@gmail.com> | 2010-04-01 22:06:52 +0000 |
commit | d6543b71afcceb028953b0fffcf5ed8f2942182e (patch) | |
tree | 459f317465700d4681183248c1b4f5fa3f036065 /rbutil | |
parent | 0d6828e064eee6c4bdac1dd9e9ce9bf522f9754a (diff) | |
download | rockbox-d6543b71afcceb028953b0fffcf5ed8f2942182e.tar.gz rockbox-d6543b71afcceb028953b0fffcf5ed8f2942182e.zip |
Fix leaking file descriptors on error.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25431 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil')
-rw-r--r-- | rbutil/rbutilqt/base/encoders.cpp | 2 | ||||
-rw-r--r-- | rbutil/rbutilqt/base/voicefile.cpp | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/rbutil/rbutilqt/base/encoders.cpp b/rbutil/rbutilqt/base/encoders.cpp index 795b622bbd..7f4163a34f 100644 --- a/rbutil/rbutilqt/base/encoders.cpp +++ b/rbutil/rbutilqt/base/encoders.cpp | |||
@@ -207,10 +207,10 @@ bool EncRbSpeex::encode(QString input,QString output) | |||
207 | } | 207 | } |
208 | if ((fout = fopen(output.toLocal8Bit(), "wb")) == NULL) { | 208 | if ((fout = fopen(output.toLocal8Bit(), "wb")) == NULL) { |
209 | qDebug() << "Error: could not open output file\n"; | 209 | qDebug() << "Error: could not open output file\n"; |
210 | fclose(fin); | ||
210 | return false; | 211 | return false; |
211 | } | 212 | } |
212 | 213 | ||
213 | |||
214 | int ret = encode_file(fin, fout, quality, complexity, narrowband, volume, | 214 | int ret = encode_file(fin, fout, quality, complexity, narrowband, volume, |
215 | errstr, sizeof(errstr)); | 215 | errstr, sizeof(errstr)); |
216 | fclose(fout); | 216 | fclose(fout); |
diff --git a/rbutil/rbutilqt/base/voicefile.cpp b/rbutil/rbutilqt/base/voicefile.cpp index 2ccdd05c09..ccdf6f7f9a 100644 --- a/rbutil/rbutilqt/base/voicefile.cpp +++ b/rbutil/rbutilqt/base/voicefile.cpp | |||
@@ -199,16 +199,19 @@ void VoiceFileCreator::downloadDone(bool error) | |||
199 | return; | 199 | return; |
200 | } | 200 | } |
201 | 201 | ||
202 | FILE* output = fopen(QString(m_mountpoint + "/.rockbox/langs/" + m_lang + ".voice").toLocal8Bit(), "wb"); | 202 | FILE* output = fopen(QString(m_mountpoint + "/.rockbox/langs/" + m_lang |
203 | + ".voice").toLocal8Bit(), "wb"); | ||
203 | if (output == NULL) | 204 | if (output == NULL) |
204 | { | 205 | { |
205 | cleanup(); | 206 | cleanup(); |
207 | fclose(ids2); | ||
206 | emit logItem(tr("Error opening output file"),LOGERROR); | 208 | emit logItem(tr("Error opening output file"),LOGERROR); |
207 | emit done(true); | 209 | emit done(true); |
208 | return; | 210 | return; |
209 | } | 211 | } |
210 | 212 | ||
211 | voicefont(ids2,m_targetid,m_path.toLocal8Bit().data(), output); | 213 | voicefont(ids2,m_targetid,m_path.toLocal8Bit().data(), output); |
214 | // ids2 and output are closed by voicefont(). | ||
212 | 215 | ||
213 | //cleanup | 216 | //cleanup |
214 | cleanup(); | 217 | cleanup(); |
@@ -216,7 +219,8 @@ void VoiceFileCreator::downloadDone(bool error) | |||
216 | // Add Voice file to the install log | 219 | // Add Voice file to the install log |
217 | QSettings installlog(m_mountpoint + "/.rockbox/rbutil.log", QSettings::IniFormat, 0); | 220 | QSettings installlog(m_mountpoint + "/.rockbox/rbutil.log", QSettings::IniFormat, 0); |
218 | installlog.beginGroup("selfcreated Voice"); | 221 | installlog.beginGroup("selfcreated Voice"); |
219 | installlog.setValue("/.rockbox/langs/" + m_lang + ".voice",QDate::currentDate().toString("yyyyMMdd")); | 222 | installlog.setValue("/.rockbox/langs/" + m_lang + ".voice", |
223 | QDate::currentDate().toString("yyyyMMdd")); | ||
220 | installlog.endGroup(); | 224 | installlog.endGroup(); |
221 | installlog.sync(); | 225 | installlog.sync(); |
222 | 226 | ||