From de5eb9f0f78378c3f9067703f926c6b1fe8f8096 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 1 Apr 2020 20:07:35 -0700 Subject: [PATCH] Fix hex edit oops add length sanity check --- .../Subforms/SysBot/SysBotController.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/NHSE.WinForms/Subforms/SysBot/SysBotController.cs b/NHSE.WinForms/Subforms/SysBot/SysBotController.cs index 8a32de4..5444fb9 100644 --- a/NHSE.WinForms/Subforms/SysBot/SysBotController.cs +++ b/NHSE.WinForms/Subforms/SysBot/SysBotController.cs @@ -66,12 +66,23 @@ public void SetOffset(uint value) public void HexEdit(uint offset, int length) { - var data = ReadBytes(offset, length); - using var ram = new SimpleHexEditor(data); + var read = ReadBytes(offset, length); + using var ram = new SimpleHexEditor(read); if (ram.ShowDialog() != DialogResult.OK) return; - WriteBytes(data, offset); + var write = ram.Bytes; + if (read.Length != write.Length) + { + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.OKCancel, + $"Read size (0x{read.Length:X}) != Write Size (0x{write.Length})", + "Write anyway?"); + + if (prompt != DialogResult.OK) + return; + } + + WriteBytes(ram.Bytes, offset); SetOffset(offset); System.Media.SystemSounds.Asterisk.Play(); }