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); return (EMSGSIZE);
} }
copyout(ip->ip_bhs, idr->idr_bhs, sizeof(*ip->ip_bhs)); error = copyout(ip->ip_bhs, idr->idr_bhs, sizeof(*ip->ip_bhs));
if (ip->ip_data_len > 0) { if (error == 0 && ip->ip_data_len > 0) {
data = malloc(ip->ip_data_len, M_ISCSI, M_WAITOK); data = malloc(ip->ip_data_len, M_ISCSI, M_WAITOK);
icl_pdu_get_data(ip, 0, data, ip->ip_data_len); 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); free(data, M_ISCSI);
} }
icl_pdu_free(ip); icl_pdu_free(ip);
return (0); return (error);
} }
#endif /* ICL_KERNEL_PROXY */ #endif /* ICL_KERNEL_PROXY */