From 6aef424571be9faa05fb7fd711155a495d282a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Thu, 10 Nov 2022 15:06:15 +0800 Subject: [PATCH] fix: cat panic --- reg.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/reg.go b/reg.go index f293462..9333000 100644 --- a/reg.go +++ b/reg.go @@ -25,6 +25,7 @@ var ( ErrNoSuchKey = errors.New("reg: no such key") ErrRawDataTooLong = errors.New("reg: raw data too long") ErrMd5NotEqual = errors.New("reg: md5 not equal") + ErrInvalidCatData = errors.New("reg: invalid cat data") ) type Regedit struct { @@ -169,6 +170,9 @@ func (r *Regedit) Cat() (*Storage, error) { if err != nil { return nil, err } + if len(sp.Target) <= 1 { + return nil, ErrInvalidCatData + } s.m[BytesToString(sp.Target[0])] = BytesToString(sp.Target[1]) i += int(sp.RealLen) }