don't allow reading files bigger then 1MB

10.3.x-maintenance
cTn 2014-01-15 13:07:51 +01:00
parent 957e1d3bd4
commit 10caea40d4
1 changed files with 30 additions and 24 deletions

View File

@ -114,35 +114,41 @@ function configuration_restore() {
chosenFileEntry.file(function(file) { chosenFileEntry.file(function(file) {
var reader = new FileReader(); var reader = new FileReader();
reader.onerror = function (e) { reader.onprogress = function(e) {
console.error(e); if (e.total > 1048576) { // 1 MB
// dont allow reading files bigger then 1 MB
console.log('File limit (1 MB) exceeded, aborting');
reader.abort();
}
}; };
reader.onloadend = function(e) { reader.onloadend = function(e) {
console.log('Read SUCCESSFUL'); if (e.total != 0 && e.total == e.loaded) {
console.log('Read SUCCESSFUL');
try { // check if string provided is a valid JSON try { // check if string provided is a valid JSON
var deserialized_configuration_object = JSON.parse(e.target.result); var deserialized_configuration_object = JSON.parse(e.target.result);
} catch (e) { } catch (e) {
// data provided != valid json object // data provided != valid json object
console.log('Data provided != valid JSON string, restore aborted.'); console.log('Data provided != valid JSON string, restore aborted.');
return; return;
}
// replacing "old configuration" with configuration from backup file
var configuration = deserialized_configuration_object;
// some configuration.VERSION code goes here? will see
PIDs = configuration.PID;
AUX_CONFIG_values = configuration.AUX_val;
RC_tuning = configuration.RC;
CONFIG.accelerometerTrims = configuration.AccelTrim;
MISC = configuration.MISC;
// all of the arrays/objects are set, upload changes
configuration_upload();
} }
// replacing "old configuration" with configuration from backup file
var configuration = deserialized_configuration_object;
// some configuration.VERSION code goes here? will see
PIDs = configuration.PID;
AUX_CONFIG_values = configuration.AUX_val;
RC_tuning = configuration.RC;
CONFIG.accelerometerTrims = configuration.AccelTrim;
MISC = configuration.MISC;
// all of the arrays/objects are set, upload changes
configuration_upload();
}; };
reader.readAsText(file); reader.readAsText(file);