Don't accept fancy lookin letters in Unified configs (#1693)
Don't accept fancy lookin letters in Unified configs10.7.0-preview
commit
71e538379a
|
@ -2818,6 +2818,14 @@
|
||||||
"firmwareFlasherHexCorrupted": {
|
"firmwareFlasherHexCorrupted": {
|
||||||
"message": "HEX file appears to be corrupted"
|
"message": "HEX file appears to be corrupted"
|
||||||
},
|
},
|
||||||
|
"firmwareFlasherConfigCorrupted": {
|
||||||
|
"message": "Config file appears to be corrupted, ASCII accepted (chars 0-255)",
|
||||||
|
"description": "shown in the progress bar at the bottom, be brief"
|
||||||
|
},
|
||||||
|
"firmwareFlasherConfigCorruptedLogMessage": {
|
||||||
|
"message": "Config file appears to be corrupted, ASCII accepted (chars 0-255), characters outside of this range are allowed as comments",
|
||||||
|
"description": "shown in the log, more wordy"
|
||||||
|
},
|
||||||
"firmwareFlasherRemoteFirmwareLoaded": {
|
"firmwareFlasherRemoteFirmwareLoaded": {
|
||||||
"message": "<span class=\"message-positive\">Remote Firmware loaded, ready for flashing</span>"
|
"message": "<span class=\"message-positive\">Remote Firmware loaded, ready for flashing</span>"
|
||||||
},
|
},
|
||||||
|
|
|
@ -612,6 +612,28 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
self.flashingMessage(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', self.parsed_hex.bytes_total), self.FLASH_MESSAGE_TYPES.NEUTRAL);
|
self.flashingMessage(i18n.getMessage('firmwareFlasherFirmwareLocalLoaded', self.parsed_hex.bytes_total), self.FLASH_MESSAGE_TYPES.NEUTRAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function cleanUnifiedConfigFile(input) {
|
||||||
|
let output = [];
|
||||||
|
let inComment = false;
|
||||||
|
for (let i=0; i < input.length; i++) {
|
||||||
|
if (input.charAt(i) == "\n" || input.charAt(i) == "\r") {
|
||||||
|
inComment = false;
|
||||||
|
}
|
||||||
|
if (input.charAt(i) == "#") {
|
||||||
|
inComment = true;
|
||||||
|
}
|
||||||
|
if (!inComment && input.charCodeAt(i) > 255) {
|
||||||
|
// Note: we're not showing this error in betaflight-configurator
|
||||||
|
throw new Error('commands are limited to characters 0-255, comments have no limitation');
|
||||||
|
}
|
||||||
|
if (input.charCodeAt(i) > 255) {
|
||||||
|
output.push('_');
|
||||||
|
} else {
|
||||||
|
output.push(input.charAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return output.join('');
|
||||||
|
}
|
||||||
// UI Hooks
|
// UI Hooks
|
||||||
$('a.load_file').click(function () {
|
$('a.load_file').click(function () {
|
||||||
self.enableFlashing(false);
|
self.enableFlashing(false);
|
||||||
|
@ -666,10 +688,15 @@ TABS.firmware_flasher.initialize = function (callback) {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
clearBufferedFirmware();
|
clearBufferedFirmware();
|
||||||
self.unifiedTargetConfig = e.target.result;
|
try {
|
||||||
|
self.unifiedTargetConfig = cleanUnifiedConfigFile(e.target.result);
|
||||||
self.unifiedTargetConfigName = file.name;
|
self.unifiedTargetConfigName = file.name;
|
||||||
self.isConfigLocal = true;
|
self.isConfigLocal = true;
|
||||||
flashingMessageLocal();
|
flashingMessageLocal();
|
||||||
|
} catch(err) {
|
||||||
|
self.flashingMessage('firmwareFlasherConfigCorrupted', self.FLASH_MESSAGE_TYPES.INVALID);
|
||||||
|
GUI.log(i18n.getMessage('firmwareFlasherConfigCorruptedLogMessage'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue