DF-1661 / fix.diff
diff --git a/sys/dev/misc/ipmi/ipmi.c b/sys/dev/misc/ipmi/ipmi.c --- a/sys/dev/misc/ipmi/ipmi.c +++ b/sys/dev/misc/ipmi/ipmi.c @@ -461,9 +461,9 @@ len = min(recv->msg.data_len, len); recv->msg.data_len = len; error = copyout(&addr, recv->addr,sizeof(addr)); - if (error == 0) + if (error == 0 && len >= 1) error = copyout(&kreq->ir_compcode, recv->msg.data, 1); - if (error == 0) + if (error == 0 && len > 1) error = copyout(kreq->ir_reply, recv->msg.data + 1, len - 1); ipmi_free_request(kreq); |