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 <viz@linux.com>
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}
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}