18 Sep
2023
18 Sep
'23
11:51 a.m.
Nikolay Sivov (@nsivov) commented about dlls/oleaut32/connpt.c:
break; } if(i == This->maxSinks) { + This->sinks = realloc(This->sinks, (This->maxSinks + MAXSINKS) * sizeof(IUnknown*)); + memset(This->sinks + This->maxSinks, 0, MAXSINKS * sizeof(IUnknown*)); This->maxSinks += MAXSINKS; - This->sinks = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->sinks, - This->maxSinks * sizeof(IUnknown *)); } This->sinks[i] = lpSink; This->nSinks++;
Do we need memset()? nSinks here is actual count, and maxSinks is allocated limit. So ConnectionPointImpl_Destroy() should probably use nSinks too, and not maxSinks. Same for Unadvise(). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3617#note_45725