Avoid leaking file descriptors in RegisterLoad

This is pretty trivial, but if there's an error here we'll leak a file
descriptor. Changed it to always close the file.
This commit is contained in:
Casey Rodarmor 2015-07-28 14:01:00 -04:00 committed by Holger Schinzel
parent 5e02224bf4
commit 6010b5e7a0

View File

@ -149,13 +149,14 @@ static void RegisterLoad(const string& strInput)
valStr.insert(valStr.size(), buf, bread); valStr.insert(valStr.size(), buf, bread);
} }
if (ferror(f)) { int error = ferror(f);
fclose(f);
if (error) {
string strErr = "Error reading file " + filename; string strErr = "Error reading file " + filename;
throw runtime_error(strErr); throw runtime_error(strErr);
} }
fclose(f);
// evaluate as JSON buffer register // evaluate as JSON buffer register
RegisterSetJson(key, valStr); RegisterSetJson(key, valStr);
} }