if (HOST_TO_TARGET(lpPRB)) {
/* send header, command, and then data */
in_len = SCSI_OFF + lpPRB->SRB_CDBLen + lpPRB->SRB_BufLen;
- sg_hd = (struct sg_header *) malloc(in_len);
+ sg_hd = HeapAlloc(GetProcessHeap(), 0, in_len);
memset(sg_hd, 0, SCSI_OFF);
memcpy(sg_hd + 1, &lpPRB->CDBByte[0], lpPRB->SRB_CDBLen);
if (lpPRB->SRB_BufLen) {
else {
/* send header and command - no data */
in_len = SCSI_OFF + lpPRB->SRB_CDBLen;
- sg_hd = (struct sg_header *) malloc(in_len);
+ sg_hd = HeapAlloc(GetProcessHeap(), 0, in_len);
memset(sg_hd, 0, SCSI_OFF);
memcpy(sg_hd + 1, &lpPRB->CDBByte[0], lpPRB->SRB_CDBLen);
}
if (TARGET_TO_HOST(lpPRB)) {
out_len = SCSI_OFF + lpPRB->SRB_BufLen;
- sg_reply_hdr = (struct sg_header *) malloc(out_len);
+ sg_reply_hdr = HeapAlloc(GetProcessHeap(), 0, out_len);
memset(sg_reply_hdr, 0, SCSI_OFF);
sg_hd->reply_len = out_len;
}
else {
out_len = SCSI_OFF;
- sg_reply_hdr = (struct sg_header *) malloc(out_len);
+ sg_reply_hdr = HeapAlloc(GetProcessHeap(), 0, out_len);
memset(sg_reply_hdr, 0, SCSI_OFF);
sg_hd->reply_len = out_len;
}
}
}
- free(sg_reply_hdr);
- free(sg_hd);
+ HeapFree(GetProcessHeap(), 0, sg_reply_hdr);
+ HeapFree(GetProcessHeap(), 0, sg_hd);
ASPI_DebugPrintResult(lpPRB, mode);
return SS_COMP;
* We probably should set lpPRB->SRB_TargStat, SRB_HaStat ?
*/
WARN("error_exit\n");
- free(sg_reply_hdr);
- free(sg_hd);
+ HeapFree(GetProcessHeap(), 0, sg_reply_hdr);
+ HeapFree(GetProcessHeap(), 0, sg_hd);
return lpPRB->SRB_Status;
}
#endif