diff --git a/sycl/plugins/cuda/pi_cuda.cpp b/sycl/plugins/cuda/pi_cuda.cpp index 8fb2368995b62..95c892174db39 100644 --- a/sycl/plugins/cuda/pi_cuda.cpp +++ b/sycl/plugins/cuda/pi_cuda.cpp @@ -2534,9 +2534,13 @@ pi_result cuda_piextQueueCreate(pi_context Context, pi_device Device, assert(Properties); // Expect flags mask to be passed first. assert(Properties[0] == PI_QUEUE_FLAGS); + if (Properties[0] != PI_QUEUE_FLAGS) + return PI_ERROR_INVALID_VALUE; pi_queue_properties Flags = Properties[1]; // Extra data isn't supported yet. assert(Properties[2] == 0); + if (Properties[2] != 0) + return PI_ERROR_INVALID_VALUE; return cuda_piQueueCreate(Context, Device, Flags, Queue); } diff --git a/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp b/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp index 88e49410a800f..9c3f30ad83850 100644 --- a/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp +++ b/sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp @@ -930,9 +930,13 @@ pi_result piextQueueCreate(pi_context Context, pi_device Device, assert(Properties); // Expect flags mask to be passed first. assert(Properties[0] == PI_QUEUE_FLAGS); + if (Properties[0] != PI_QUEUE_FLAGS) + return PI_ERROR_INVALID_VALUE; pi_queue_properties Flags = Properties[1]; // Extra data isn't supported yet. assert(Properties[2] == 0); + if (Properties[2] != 0) + return PI_ERROR_INVALID_VALUE; return piQueueCreate(Context, Device, Flags, Queue); } pi_result piQueueCreate(pi_context Context, pi_device Device, diff --git a/sycl/plugins/hip/pi_hip.cpp b/sycl/plugins/hip/pi_hip.cpp index 845c2a60dcb08..b36bfd9993499 100644 --- a/sycl/plugins/hip/pi_hip.cpp +++ b/sycl/plugins/hip/pi_hip.cpp @@ -2411,9 +2411,13 @@ pi_result hip_piextQueueCreate(pi_context Context, pi_device Device, assert(Properties); // Expect flags mask to be passed first. assert(Properties[0] == PI_QUEUE_FLAGS); + if (Properties[0] != PI_QUEUE_FLAGS) + return PI_ERROR_INVALID_VALUE; pi_queue_properties Flags = Properties[1]; // Extra data isn't supported yet. assert(Properties[2] == 0); + if (Properties[2] != 0) + return PI_ERROR_INVALID_VALUE; return hip_piQueueCreate(Context, Device, Flags, Queue); } diff --git a/sycl/plugins/opencl/pi_opencl.cpp b/sycl/plugins/opencl/pi_opencl.cpp index 83ac889876167..cd5e2a3a182bc 100644 --- a/sycl/plugins/opencl/pi_opencl.cpp +++ b/sycl/plugins/opencl/pi_opencl.cpp @@ -471,9 +471,13 @@ pi_result piextQueueCreate(pi_context Context, pi_device Device, assert(Properties); // Expect flags mask to be passed first. assert(Properties[0] == PI_QUEUE_FLAGS); + if (Properties[0] != PI_QUEUE_FLAGS) + return PI_ERROR_INVALID_VALUE; pi_queue_properties Flags = Properties[1]; // Extra data isn't supported yet. assert(Properties[2] == 0); + if (Properties[2] != 0) + return PI_ERROR_INVALID_VALUE; return piQueueCreate(Context, Device, Flags, Queue); } pi_result piQueueCreate(pi_context context, pi_device device,