summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2010-04-01 22:06:52 +0000
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2010-04-01 22:06:52 +0000
commitd6543b71afcceb028953b0fffcf5ed8f2942182e (patch)
tree459f317465700d4681183248c1b4f5fa3f036065
parent0d6828e064eee6c4bdac1dd9e9ce9bf522f9754a (diff)
downloadrockbox-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
-rw-r--r--rbutil/rbutilqt/base/encoders.cpp2
-rw-r--r--rbutil/rbutilqt/base/voicefile.cpp8
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