From 0e9186510e49b6a80a3e36d2c7803b9b5cd12981 Mon Sep 17 00:00:00 2001 From: Mark Puha Date: Tue, 19 Sep 2023 17:07:29 +0200 Subject: [PATCH] add magic value sameness check --- device/device.go | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/device/device.go b/device/device.go index b8a4e0b..f76fb08 100644 --- a/device/device.go +++ b/device/device.go @@ -566,6 +566,26 @@ func (device *Device) isAdvancedSecurityOn() bool { } func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) { + isSameMap := map[uint32]bool{} + isSameMap[tempASecCfg.initPacketMagicHeader] = true + isSameMap[tempASecCfg.responsePacketMagicHeader] = true + isSameMap[tempASecCfg.underloadPacketMagicHeader] = true + isSameMap[tempASecCfg.transportPacketMagicHeader] = true + + // size will be different if same values + if len(isSameMap) != 4 { + err = ipcErrorf( + ipc.IpcErrorInvalid, + `magic headers should differ; got: init:%d; recv:%d; unde:%d; + tran:%d`, + tempASecCfg.initPacketMagicHeader, + tempASecCfg.responsePacketMagicHeader, + tempASecCfg.underloadPacketMagicHeader, + tempASecCfg.transportPacketMagicHeader, + ) + return + } + isASecOn := false device.aSecMux.Lock() if tempASecCfg.junkPacketCount < 0 { @@ -759,5 +779,5 @@ func (device *Device) handlePostConfig(tempASecCfg *aSecCfgType) (err error) { device.isASecOn.SetTo(isASecOn) device.aSecMux.Unlock() - return nil + return err }