From 75a41b24ad2937169a6b4d0a2909dac1ffff726f Mon Sep 17 00:00:00 2001 From: Wenxuan Zhao Date: Sat, 18 Apr 2020 07:27:39 -0700 Subject: device: add nil check before convert typed error back Since errors.As(err, target) returns false when err is nil, which cause status set to 1 when no error occurs for Ipc{Get,Set}Operation. Signed-off-by: Wenxuan Zhao --- device/uapi.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/device/uapi.go b/device/uapi.go index 1671faa..1080ca1 100644 --- a/device/uapi.go +++ b/device/uapi.go @@ -423,7 +423,7 @@ func (device *Device) IpcHandle(socket net.Conn) { switch op { case "set=1\n": err = device.IpcSetOperation(buffered.Reader) - if !errors.As(err, &status) { + if err != nil && !errors.As(err, &status) { // should never happen device.log.Error.Println("Invalid UAPI error:", err) status = &IPCError{1} @@ -431,7 +431,7 @@ func (device *Device) IpcHandle(socket net.Conn) { case "get=1\n": err = device.IpcGetOperation(buffered.Writer) - if !errors.As(err, &status) { + if err != nil && !errors.As(err, &status) { // should never happen device.log.Error.Println("Invalid UAPI error:", err) status = &IPCError{1} -- cgit v1.2.3-54-g00ecf