iscsi: Check for copyout errors in iscsi_ioctl_daemon_receive()

Reviewed by:	jhb
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D43148
This commit is contained in:
Mark Johnston 2023-12-25 20:43:31 -05:00
parent 099d25c354
commit 74e713804f

View File

@ -1896,17 +1896,17 @@ iscsi_ioctl_daemon_receive(struct iscsi_softc *sc,
return (EMSGSIZE);
}
copyout(ip->ip_bhs, idr->idr_bhs, sizeof(*ip->ip_bhs));
if (ip->ip_data_len > 0) {
error = copyout(ip->ip_bhs, idr->idr_bhs, sizeof(*ip->ip_bhs));
if (error == 0 && ip->ip_data_len > 0) {
data = malloc(ip->ip_data_len, M_ISCSI, M_WAITOK);
icl_pdu_get_data(ip, 0, data, ip->ip_data_len);
copyout(data, idr->idr_data_segment, ip->ip_data_len);
error = copyout(data, idr->idr_data_segment, ip->ip_data_len);
free(data, M_ISCSI);
}
icl_pdu_free(ip);
return (0);
return (error);
}
#endif /* ICL_KERNEL_PROXY */