@@ -87,6 +87,11 @@ urUSMHostAlloc(ur_context_handle_t hContext, const ur_usm_desc_t *pUSMDesc,
87
87
void *Ptr = nullptr ;
88
88
uint32_t Alignment = pUSMDesc ? pUSMDesc->align : 0 ;
89
89
90
+ if (pUSMDesc && pUSMDesc->align != 0 &&
91
+ ((pUSMDesc->align & (pUSMDesc->align - 1 )) != 0 )) {
92
+ return UR_RESULT_ERROR_INVALID_VALUE;
93
+ }
94
+
90
95
std::vector<cl_mem_properties_intel> AllocProperties;
91
96
if (pUSMDesc && pUSMDesc->pNext ) {
92
97
UR_RETURN_ON_FAILURE (usmDescToCLMemProperties (
@@ -130,6 +135,11 @@ urUSMDeviceAlloc(ur_context_handle_t hContext, ur_device_handle_t hDevice,
130
135
void *Ptr = nullptr ;
131
136
uint32_t Alignment = pUSMDesc ? pUSMDesc->align : 0 ;
132
137
138
+ if (pUSMDesc && pUSMDesc->align != 0 &&
139
+ ((pUSMDesc->align & (pUSMDesc->align - 1 )) != 0 )) {
140
+ return UR_RESULT_ERROR_INVALID_VALUE;
141
+ }
142
+
133
143
std::vector<cl_mem_properties_intel> AllocProperties;
134
144
if (pUSMDesc && pUSMDesc->pNext ) {
135
145
UR_RETURN_ON_FAILURE (usmDescToCLMemProperties (
@@ -173,6 +183,11 @@ urUSMSharedAlloc(ur_context_handle_t hContext, ur_device_handle_t hDevice,
173
183
void *Ptr = nullptr ;
174
184
uint32_t Alignment = pUSMDesc ? pUSMDesc->align : 0 ;
175
185
186
+ if (pUSMDesc && pUSMDesc->align != 0 &&
187
+ ((pUSMDesc->align & (pUSMDesc->align - 1 )) != 0 )) {
188
+ return UR_RESULT_ERROR_INVALID_VALUE;
189
+ }
190
+
176
191
std::vector<cl_mem_properties_intel> AllocProperties;
177
192
if (pUSMDesc && pUSMDesc->pNext ) {
178
193
UR_RETURN_ON_FAILURE (usmDescToCLMemProperties (
0 commit comments