diff --git a/manifests/manifest.yml b/manifests/manifest.yml index e7071ba689..585cf59743 100644 --- a/manifests/manifest.yml +++ b/manifests/manifest.yml @@ -17,7 +17,7 @@ components: branch: infra clean_on_sync: true dest_dir: infra - revision: c174a6eaf351ae68abbc285c837ab29c7544fcfc + revision: 8b13573ecf55f1f1142a815fdc181d34c29c7574 type: git internal: branch: master diff --git a/runtime/gen8/hw_cmds_generated.h b/runtime/gen8/hw_cmds_generated.h index 9965568d35..410b414052 100644 --- a/runtime/gen8/hw_cmds_generated.h +++ b/runtime/gen8/hw_cmds_generated.h @@ -3878,7 +3878,7 @@ typedef struct tagSTATE_BASE_ADDRESS { } } inline uint32_t getStatelessDataPortAccessMemoryObjectControlStateIndexToMocsTables(void) const { - return (uint32_t)(((TheStructure.RawData[3] & 0x00780000) == 0x00710000) ? 0 : 2); + return (uint32_t)(((TheStructure.RawData[3] & 0x007f0000u) == 0x00710000u) ? 0 : 2); } inline void setInstructionMemoryObjectControlState(const uint32_t value) { TheStructure.Common.InstructionMemoryObjectControlState_AgeForQuadlru = value; diff --git a/runtime/helpers/string.h b/runtime/helpers/string.h index 43ee1654b8..d6d9502947 100644 --- a/runtime/helpers/string.h +++ b/runtime/helpers/string.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -27,20 +27,17 @@ #include #include -inline int strcpy_s(char *dst, size_t numberOfElements, const char *src) { +inline int strcpy_s(char *dst, size_t dstSize, const char *src) { if ((dst == nullptr) || (src == nullptr)) { return -EINVAL; } size_t length = strlen(src); - if (numberOfElements < length) { + if (dstSize <= length) { return -ERANGE; } -#ifndef strlcpy -#define strlcpy(d, s, n) snprintf((d), (n), "%s", (s)) -#endif - - strlcpy(dst, src, numberOfElements); + strncpy(dst, src, length); + dst[length] = '\0'; return 0; } diff --git a/runtime/kernel/kernel.cpp b/runtime/kernel/kernel.cpp index b6b343001a..8a23bd434c 100644 --- a/runtime/kernel/kernel.cpp +++ b/runtime/kernel/kernel.cpp @@ -915,7 +915,7 @@ inline void Kernel::makeArgsResident(CommandStreamReceiver &commandStreamReceive auto pSVMAlloc = (GraphicsAllocation *)kernelArguments[argIndex].object; commandStreamReceiver.makeResident(*pSVMAlloc); } else if (Kernel::isMemObj(kernelArguments[argIndex].type)) { - auto clMem = (const cl_mem)kernelArguments[argIndex].object; + auto clMem = const_cast(static_cast(kernelArguments[argIndex].object)); auto memObj = castToObjectOrAbort(clMem); DEBUG_BREAK_IF(memObj == nullptr); if (memObj->isImageFromImage()) { @@ -935,7 +935,7 @@ void Kernel::updateWithCompletionStamp(CommandStreamReceiver &commandStreamRecei for (decltype(numArgs) argIndex = 0; argIndex < numArgs; argIndex++) { if (kernelArguments[argIndex].object) { if (Kernel::isMemObj(kernelArguments[argIndex].type)) { - auto clMem = (const cl_mem)kernelArguments[argIndex].object; + auto clMem = const_cast(static_cast(kernelArguments[argIndex].object)); auto memObj = castToObjectOrAbort(clMem); DEBUG_BREAK_IF(memObj == nullptr); memObj->setCompletionStamp(*completionStamp, nullptr, nullptr); @@ -999,7 +999,7 @@ void Kernel::getResidency(std::vector &dst) { auto pSVMAlloc = (GraphicsAllocation *)kernelArguments[argIndex].object; dst.push_back(new GeneralSurface(pSVMAlloc)); } else if (Kernel::isMemObj(kernelArguments[argIndex].type)) { - auto clMem = (const cl_mem)kernelArguments[argIndex].object; + auto clMem = const_cast(static_cast(kernelArguments[argIndex].object)); auto memObj = castToObject(clMem); DEBUG_BREAK_IF(memObj == nullptr); dst.push_back(new MemObjSurface(memObj)); @@ -1028,7 +1028,7 @@ bool Kernel::requiresCoherency() { } if (Kernel::isMemObj(kernelArguments[argIndex].type)) { - auto clMem = (const cl_mem)kernelArguments[argIndex].object; + auto clMem = const_cast(static_cast(kernelArguments[argIndex].object)); auto memObj = castToObjectOrAbort(clMem); if (memObj->getGraphicsAllocation()->isCoherent()) { return true; diff --git a/runtime/sharings/va/va_sharing_defines.h b/runtime/sharings/va/va_sharing_defines.h index feb3ec49ef..7977331fb5 100644 --- a/runtime/sharings/va/va_sharing_defines.h +++ b/runtime/sharings/va/va_sharing_defines.h @@ -30,4 +30,4 @@ typedef VAStatus (*VADeriveImagePFN)(VADisplay vaDisplay, VASurfaceID vaSurface, typedef VAStatus (*VADestroyImagePFN)(VADisplay vaDisplay, VAImageID vaImageId); typedef VAStatus (*VAExtGetSurfaceHandlePFN)(VADisplay vaDisplay, VASurfaceID *vaSurface, unsigned int *handleId); typedef VAStatus (*VASyncSurfacePFN)(VADisplay vaDisplay, VASurfaceID vaSurface); -typedef VAPrivFunc (*VAGetLibFuncPFN)(VADisplay vaDisplay, const char *func); +typedef void *(*VAGetLibFuncPFN)(VADisplay vaDisplay, const char *func); diff --git a/runtime/sharings/va/va_sharing_functions.cpp b/runtime/sharings/va/va_sharing_functions.cpp index 5c30f0dee9..bc71d51b56 100644 --- a/runtime/sharings/va/va_sharing_functions.cpp +++ b/runtime/sharings/va/va_sharing_functions.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -56,12 +56,12 @@ void VASharingFunctions::initFunctions() { if (DebugManager.flags.EnableVaLibCalls.get()) { libHandle = fdlopen(Os::libvaDllName, RTLD_LAZY); if (libHandle) { - vaDisplayIsValidPFN = (VADisplayIsValidPFN)fdlsym(libHandle, "vaDisplayIsValid"); - vaDeriveImagePFN = (VADeriveImagePFN)fdlsym(libHandle, "vaDeriveImage"); - vaDestroyImagePFN = (VADestroyImagePFN)fdlsym(libHandle, "vaDestroyImage"); - vaSyncSurfacePFN = (VASyncSurfacePFN)fdlsym(libHandle, "vaSyncSurface"); - vaGetLibFuncPFN = (VAGetLibFuncPFN)fdlsym(libHandle, "vaGetLibFunc"); - vaExtGetSurfaceHandlePFN = (VAExtGetSurfaceHandlePFN)getLibFunc("DdiMedia_ExtGetSurfaceHandle"); + vaDisplayIsValidPFN = reinterpret_cast(fdlsym(libHandle, "vaDisplayIsValid")); + vaDeriveImagePFN = reinterpret_cast(fdlsym(libHandle, "vaDeriveImage")); + vaDestroyImagePFN = reinterpret_cast(fdlsym(libHandle, "vaDestroyImage")); + vaSyncSurfacePFN = reinterpret_cast(fdlsym(libHandle, "vaSyncSurface")); + vaGetLibFuncPFN = reinterpret_cast(fdlsym(libHandle, "vaGetLibFunc")); + vaExtGetSurfaceHandlePFN = reinterpret_cast(getLibFunc("DdiMedia_ExtGetSurfaceHandle")); } else { vaDisplayIsValidPFN = nullptr; vaDeriveImagePFN = nullptr; diff --git a/runtime/sharings/va/va_sharing_functions.h b/runtime/sharings/va/va_sharing_functions.h index 44d72df209..48b7aebb92 100644 --- a/runtime/sharings/va/va_sharing_functions.h +++ b/runtime/sharings/va/va_sharing_functions.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -56,7 +56,7 @@ class VASharingFunctions : public SharingFunctions { return vaSyncSurfacePFN(vaDisplay, vaSurface); } - VAPrivFunc getLibFunc(const char *func) { + void *getLibFunc(const char *func) { if (vaGetLibFuncPFN) { return vaGetLibFuncPFN(vaDisplay, func); } diff --git a/unit_tests/helpers/string_tests.cpp b/unit_tests/helpers/string_tests.cpp index 523eabdb1d..4c450ce102 100644 --- a/unit_tests/helpers/string_tests.cpp +++ b/unit_tests/helpers/string_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -91,21 +91,35 @@ TEST(StringHelpers, strcpy) { ASSERT_EQ(sizeof(dst), sizeof(src)); - auto ret = strcpy_s(nullptr, sizeof(dst), src); + auto ret = strcpy_s(nullptr, 0, src); EXPECT_EQ(ret, -EINVAL); - ret = strcpy_s(dst, sizeof(dst), nullptr); + ret = strcpy_s(nullptr, sizeof(dst), src); + EXPECT_EQ(ret, -EINVAL); + + ret = strcpy_s(nullptr, 0, nullptr); + EXPECT_EQ(ret, -EINVAL); + + ret = strcpy_s(nullptr, sizeof(dst), nullptr); + EXPECT_EQ(ret, -EINVAL); + + ret = strcpy_s(dst, 0, nullptr); EXPECT_EQ(ret, -EINVAL); ret = strcpy_s(dst, strlen(src) / 2, src); EXPECT_EQ(ret, -ERANGE); - memset(dst, 0, sizeof(dst)); + ret = strcpy_s(dst, strlen(src), src); + EXPECT_EQ(ret, -ERANGE); + + char pattern = 0x5a; + memset(dst, pattern, sizeof(dst)); ret = strcpy_s(dst, sizeof(dst), src); EXPECT_EQ(ret, 0); EXPECT_EQ(0, memcmp(dst, src, strlen(src))); - for (size_t i = strlen(src); i < sizeof(dst); i++) - EXPECT_EQ(0, dst[i]); + EXPECT_EQ(0, dst[strlen(src)]); + for (size_t i = strlen(src) + 1; i < sizeof(dst); i++) + EXPECT_EQ(pattern, dst[i]); } TEST(StringHelpers, strnlen) { diff --git a/unit_tests/mem_obj/image_redescribe_tests.cpp b/unit_tests/mem_obj/image_redescribe_tests.cpp index f981a1e56b..6082a1cc28 100644 --- a/unit_tests/mem_obj/image_redescribe_tests.cpp +++ b/unit_tests/mem_obj/image_redescribe_tests.cpp @@ -224,10 +224,10 @@ static uint32_t ImageType[] = { CL_MEM_OBJECT_IMAGE1D_ARRAY, CL_MEM_OBJECT_IMAGE2D_ARRAY}; -typedef decltype(numReadWriteSurfaceFormats) ReadWriteSurfaceFormatsCountType; +decltype(numReadWriteSurfaceFormats) readWriteSurfaceFormatsStart = 0u; INSTANTIATE_TEST_CASE_P( Redescribe, ImageRedescribeTest, testing::Combine( - ::testing::Range(static_cast(0u), numReadWriteSurfaceFormats), - ::testing::ValuesIn(ImageType))); \ No newline at end of file + ::testing::Range(readWriteSurfaceFormatsStart, numReadWriteSurfaceFormats), + ::testing::ValuesIn(ImageType))); diff --git a/unit_tests/sharings/va/mock_va_sharing.h b/unit_tests/sharings/va/mock_va_sharing.h index 1d7ca282dc..c46afae53b 100644 --- a/unit_tests/sharings/va/mock_va_sharing.h +++ b/unit_tests/sharings/va/mock_va_sharing.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Intel Corporation + * Copyright (c) 2017 - 2018, Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -60,7 +60,7 @@ class VASharingFunctionsMock : public VASharingFunctions { return (VAStatus)0; // success }; - static VAPrivFunc mockVaGetLibFunc(VADisplay vaDisplay, const char *func) { + static void *mockVaGetLibFunc(VADisplay vaDisplay, const char *func) { vaGetLibFuncCalled++; return nullptr; }; diff --git a/unit_tests/sku_info/sku_info_transfer_tests.cpp b/unit_tests/sku_info/sku_info_transfer_tests.cpp index 364f776ae0..f9b6943164 100644 --- a/unit_tests/sku_info/sku_info_transfer_tests.cpp +++ b/unit_tests/sku_info/sku_info_transfer_tests.cpp @@ -30,7 +30,7 @@ TEST(SkuInfoTransferTest, givenFeatureTableWhenFillingStructureForGmmThenCopyOnl _SKU_FEATURE_TABLE requestedFtrTable = {}; _SKU_FEATURE_TABLE refFtrTable = {}; FeatureTable featureTable; - memset(&featureTable, 1, sizeof(FeatureTable)); + memset(reinterpret_cast(&featureTable), 1, sizeof(FeatureTable)); SkuInfoTransfer::transferFtrTableForGmm(&requestedFtrTable, &featureTable); SkuInfoBaseReference::fillReferenceFtrForTransfer(refFtrTable); @@ -43,7 +43,7 @@ TEST(SkuInfoTransferTest, givenWaTableWhenFillingStructureForGmmThenCopyOnlySele _WA_TABLE refWaTable = {}; WorkaroundTable waTable; refWaTable = {}; - memset(&waTable, 1, sizeof(WorkaroundTable)); + memset(reinterpret_cast(&waTable), 1, sizeof(WorkaroundTable)); SkuInfoTransfer::transferWaTableForGmm(&requestedWaTable, &waTable); SkuInfoBaseReference::fillReferenceWaForTransfer(refWaTable);