@@ -552,6 +552,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urUSMPitchedAllocExp(
552552 size_t *pResultPitch) {
553553 std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
554554
555+ UR_ASSERT (hContext && hDevice, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
556+ UR_ASSERT (widthInBytes != 0 , UR_RESULT_ERROR_INVALID_USM_SIZE);
557+ UR_ASSERT (ppMem && pResultPitch, UR_RESULT_ERROR_INVALID_NULL_POINTER);
558+
555559 static std::once_flag InitFlag;
556560 std::call_once (InitFlag, [&]() {
557561 ze_driver_handle_t DriverHandle = hContext->getPlatform ()->ZeDriver ;
@@ -606,6 +610,10 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageAllocateExp(
606610 ur_exp_image_mem_handle_t *phImageMem) {
607611 std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
608612
613+ UR_ASSERT (hContext && hDevice, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
614+ UR_ASSERT (pImageFormat && pImageDesc && phImageMem,
615+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
616+
609617 ZeStruct<ze_image_desc_t > ZeImageDesc;
610618 UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
611619
@@ -641,6 +649,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
641649 ur_exp_image_handle_t *phImage) {
642650 std::shared_lock<ur_shared_mutex> Lock (hContext->Mutex );
643651
652+ UR_ASSERT (hContext && hDevice && hImageMem,
653+ UR_RESULT_ERROR_INVALID_NULL_HANDLE);
654+ UR_ASSERT (pImageFormat && pImageDesc && phMem && phImage,
655+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
656+
644657 ZeStruct<ze_image_desc_t > ZeImageDesc;
645658 UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
646659
@@ -669,7 +682,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
669682 ZeImage = UrImage->ZeImage ;
670683 *phMem = nullptr ;
671684 }
672- } else {
685+ } else if (MemAllocProperties. type == ZE_MEMORY_TYPE_DEVICE) {
673686 ze_image_pitched_exp_desc_t PitchedDesc;
674687 PitchedDesc.stype = ZE_STRUCTURE_TYPE_PITCHED_IMAGE_EXP_DESC;
675688 PitchedDesc.pNext = nullptr ;
@@ -688,6 +701,8 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesUnsampledImageCreateExp(
688701 (hContext->ZeContext , hDevice->ZeDevice , ZeImage));
689702 UR_CALL (createUrMemFromZeImage (hContext, ZeImage, /* OwnZeMemHandle*/ true ,
690703 ZeImageDesc, phMem));
704+ } else {
705+ return UR_RESULT_ERROR_INVALID_VALUE;
691706 }
692707
693708 static std::once_flag InitFlag;
@@ -741,6 +756,15 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageCopyExp(
741756 ur_rect_region_t hostExtent, uint32_t numEventsInWaitList,
742757 const ur_event_handle_t *phEventWaitList, ur_event_handle_t *phEvent) {
743758 std::scoped_lock<ur_shared_mutex> Lock (hQueue->Mutex );
759+
760+ UR_ASSERT (hQueue, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
761+ UR_ASSERT (pDst && pSrc && pImageFormat && pImageDesc,
762+ UR_RESULT_ERROR_INVALID_NULL_POINTER);
763+ UR_ASSERT (!(UR_EXP_IMAGE_COPY_FLAGS_MASK & imageCopyFlags),
764+ UR_RESULT_ERROR_INVALID_ENUMERATION);
765+ UR_ASSERT (!(pImageDesc && UR_MEM_TYPE_IMAGE1D_BUFFER < pImageDesc->type ),
766+ UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR);
767+
744768 ZeStruct<ze_image_desc_t > ZeImageDesc;
745769 UR_CALL (ur2zeImageDesc (pImageFormat, pImageDesc, ZeImageDesc));
746770
@@ -843,6 +867,11 @@ UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageCopyExp(
843867UR_APIEXPORT ur_result_t UR_APICALL urBindlessImagesImageGetInfoExp (
844868 ur_exp_image_mem_handle_t hImageMem, ur_image_info_t propName,
845869 void *pPropValue, size_t *pPropSizeRet) {
870+ UR_ASSERT (hImageMem, UR_RESULT_ERROR_INVALID_NULL_HANDLE);
871+ UR_ASSERT (UR_IMAGE_INFO_DEPTH >= propName,
872+ UR_RESULT_ERROR_INVALID_ENUMERATION);
873+ UR_ASSERT (pPropValue || pPropSizeRet, UR_RESULT_ERROR_INVALID_NULL_POINTER);
874+
846875 auto *UrImage = reinterpret_cast <_ur_image *>(hImageMem);
847876 ze_image_desc_t &Desc = UrImage->ZeImageDesc ;
848877 switch (propName) {
0 commit comments