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->sinks[i] = lpSink; This->nSinks++;This->maxSinks * sizeof(IUnknown *));
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().