diff --git a/apps/gipy/app.js b/apps/gipy/app.js index 0077ef509..f5c15d084 100644 --- a/apps/gipy/app.js +++ b/apps/gipy/app.js @@ -458,6 +458,7 @@ class Status { function load_gpc(filename) { let buffer = require("Storage").readArrayBuffer(filename); + let file_size = buffer.length; let offset = 0; // header @@ -499,6 +500,20 @@ function load_gpc(filename) { let interests_starts = Uint16Array(buffer, offset, starts_length); offset += 2 * starts_length; + console.log("checksuming file"); + // checksum file size + let expected_size = 10 + 16 * (points_number + interests_number) + 2 * (Math.ceil(interests_on_path_number / 5)+1); + if (expected_size != file_size) { + console.log("invalid checksum", file_size, expected_size); + let msg = "invalid file\nsize is" + str(file_size) + "\ninstead of"+str(expected_size) + "\ncontinue ?"; + E.showPrompt(msg).then(() => { + if (!v) { + load(); + } + }); + } + console.log("file loaded"); + return [ points, waypoints,