1*3ac0a46fSAndroid Build Coastguard Workerdiff --git a/third_party/lcms/src/cmsopt.c b/third_party/lcms/src/cmsopt.c 2*3ac0a46fSAndroid Build Coastguard Workerindex e3212fb4d..a5475709b 100644 3*3ac0a46fSAndroid Build Coastguard Worker--- a/third_party/lcms/src/cmsopt.c 4*3ac0a46fSAndroid Build Coastguard Worker+++ b/third_party/lcms/src/cmsopt.c 5*3ac0a46fSAndroid Build Coastguard Worker@@ -100,6 +100,15 @@ typedef struct { 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker } Curves16Data; 8*3ac0a46fSAndroid Build Coastguard Worker 9*3ac0a46fSAndroid Build Coastguard Worker+// A simple adapter to prevent _cmsPipelineEval16Fn vs. _cmsInterpFn16 10*3ac0a46fSAndroid Build Coastguard Worker+// confusion, which trips up UBSAN. 11*3ac0a46fSAndroid Build Coastguard Worker+static 12*3ac0a46fSAndroid Build Coastguard Worker+void Lerp16Adapter(CMSREGISTER const cmsUInt16Number in[], 13*3ac0a46fSAndroid Build Coastguard Worker+ CMSREGISTER cmsUInt16Number out[], 14*3ac0a46fSAndroid Build Coastguard Worker+ const void* data) { 15*3ac0a46fSAndroid Build Coastguard Worker+ cmsInterpParams* params = (cmsInterpParams*)data; 16*3ac0a46fSAndroid Build Coastguard Worker+ params->Interpolation.Lerp16(in, out, params); 17*3ac0a46fSAndroid Build Coastguard Worker+} 18*3ac0a46fSAndroid Build Coastguard Worker 19*3ac0a46fSAndroid Build Coastguard Worker // Simple optimizations ---------------------------------------------------------------------------------------------------------- 20*3ac0a46fSAndroid Build Coastguard Worker 21*3ac0a46fSAndroid Build Coastguard Worker@@ -805,7 +814,7 @@ Error: 22*3ac0a46fSAndroid Build Coastguard Worker 23*3ac0a46fSAndroid Build Coastguard Worker if (DataSetIn == NULL && DataSetOut == NULL) { 24*3ac0a46fSAndroid Build Coastguard Worker 25*3ac0a46fSAndroid Build Coastguard Worker- _cmsPipelineSetOptimizationParameters(Dest, (_cmsPipelineEval16Fn) DataCLUT->Params->Interpolation.Lerp16, DataCLUT->Params, NULL, NULL); 26*3ac0a46fSAndroid Build Coastguard Worker+ _cmsPipelineSetOptimizationParameters(Dest, Lerp16Adapter, DataCLUT->Params, NULL, NULL); 27*3ac0a46fSAndroid Build Coastguard Worker } 28*3ac0a46fSAndroid Build Coastguard Worker else { 29*3ac0a46fSAndroid Build Coastguard Worker 30