Hi everybody,
One of the patches I sent on December 9th contained a fix for two constructs of the form ptr = msi_realloc (ptr, newsize); I spotted these constructs while investigating on unrelated "potential leak" entries of Michael Stefaniuc's list of potential issues found by Smatch.
It's very unlikely that *realloc fails, but if it does, this leaks some memory (or may fault, if the code is not protected against *realloc returning NULL).
Last week, I spotted another construct of that form. That prompted me to make a case-insensitive search of "realloc" in the whole Wine tree. Such a simple search was bound to turn a significant amount of noise (comments, TRACE/WARN, even correct uses of realloc, etc.), but it would also reveal other (probably) incorrect uses of realloc-type functions.
The sorted and hand-filtered results of the search I made December 14th are attached. I didn't update the file before writing this mail because it didn't make much sense: this kind of info gets outdated fast. In short: I'd say that in the list, at least a couple hundred calls to realloc-type functions are constructs of the form ptr = [realloc] (..., ptr, ...); And to be safe, all entries on the list would have to be investigated (if nothing else, to check for leaks).
Do you think this kind of code be checked and fixed for the Wine 1.0 milestone ? That looks doable, if the usual maintainers of / contributors to each piece of code participate.
Regards, Lionel.
./dlls/advapi32/tests/registry.c:55: if ((ret = realloc( list[idx], size ))) list[idx] = ret; ./dlls/atl/atl_ax.c:1065: *pptr = HeapReAlloc( GetProcessHeap(), 0, *pptr, *palloc * sizeof(WORD) ); ./dlls/atl/registrar.c:105: buf->str = HeapReAlloc(GetProcessHeap(), 0, buf->str, buf->alloc*sizeof(WCHAR)); ./dlls/avifil32/acmstream.c:470: This->acmStreamHdr.pbDst = HeapReAlloc(GetProcessHeap(), 0, This->acmStreamHdr.pbSrc, size); ./dlls/avifil32/acmstream.c:573: This->acmStreamHdr.pbDst = HeapReAlloc(GetProcessHeap(), 0, This->acmStreamHdr.pbDst, size); ./dlls/avifil32/api.c:1261: pOptions->lpFormat = HeapReAlloc(GetProcessHeap(), 0, pOptions->lpFormat, size); ./dlls/avifil32/api.c:1862: (lpBuffer = HeapReAlloc(GetProcessHeap(), 0, lpBuffer, cbBuffer *= 2)) != NULL); ./dlls/avifil32/api.c:1931: (lpBuffer = HeapReAlloc(GetProcessHeap(), 0, lpBuffer, cbBuffer *= 2)) != NULL); ./dlls/avifil32/api.c:1977: (lpBuffer = HeapReAlloc(GetProcessHeap(), 0, lpBuffer, cbBuffer *= 2)) != NULL); ./dlls/avifil32/avifile.c:1394: HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->idxFmtChanges, ./dlls/avifil32/avifile.c:1429: This->idxFrames = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->idxFrames, ./dlls/avifil32/avifile.c:2036: This->lpBuffer = HeapReAlloc(GetProcessHeap(), 0, This->lpBuffer, maxSize); ./dlls/avifil32/editstream.c:469: This->pStreams = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->pStreams, ./dlls/avifil32/editstream.c:661: This->pStreams = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->pStreams, n * sizeof(EditStreamTable)); ./dlls/avifil32/editstream.c:750: pEdit->pStreams = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, pEdit->pStreams, ./dlls/avifil32/extrachunk.c:116: lp = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, extra->lp, extra->cb + cb); ./dlls/avifil32/extrachunk.c:80: lp = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, extra->lp, extra->cb + size + 2 * sizeof(DWORD)); ./dlls/avifil32/getframe.c:263: This->lpInFormat = HeapReAlloc(GetProcessHeap(), 0, This->lpInFormat, This->cbInBuffer); ./dlls/avifil32/getframe.c:473: This->lpOutFormat = HeapReAlloc(GetProcessHeap(), 0, This->lpOutFormat, size); ./dlls/avifil32/icmstream.c:530: This->lpbiPrev = HeapReAlloc(GetProcessHeap(), 0, This->lpbiPrev, size); ./dlls/avifil32/icmstream.c:958: This->lpbiPrev = HeapReAlloc(GetProcessHeap(), 0, This->lpbiPrev, size ); ./dlls/browseui/aclmulti.c:169: This->objs = CoTaskMemRealloc(This->objs, sizeof(This->objs[0]) * (This->nObjs+1)); ./dlls/browseui/aclmulti.c:192: This->objs = CoTaskMemRealloc(This->objs, sizeof(This->objs[0]) * This->nObjs); ./dlls/browseui/progressdlg.c:91: *buffer = IMalloc_Realloc(malloc, *buffer, cb); ./dlls/comctl32/comctl32undoc.c:1028: LPSTR ptr = ReAlloc (*lppDest, len*sizeof(CHAR)); ./dlls/comctl32/comctl32undoc.c:96:LPVOID WINAPI ReAlloc (LPVOID lpSrc, DWORD dwSize) ./dlls/comctl32/comctl32undoc.c:990: LPWSTR ptr = ReAlloc (*lppDest, len*sizeof(WCHAR)); ./dlls/comctl32/comctl32undoc.c:99: return LocalReAlloc( lpSrc, dwSize, LMEM_ZEROINIT | LMEM_MOVEABLE ); ./dlls/comctl32/dpa.c:590: lpTemp = HeapReAlloc (hdpa->hHeap, HEAP_ZERO_MEMORY, hdpa->ptrs, nSize); ./dlls/comctl32/dpa.c:651: lpDest = HeapReAlloc (hdpa->hHeap, HEAP_ZERO_MEMORY, ./dlls/comctl32/dsa.c:217: lpTemp = ReAlloc (hdsa->pData, nSize); ./dlls/comctl32/dsa.c:270: lpTemp = ReAlloc (hdsa->pData, nSize); ./dlls/comctl32/dsa.c:340: lpDest = ReAlloc (hdsa->pData, nSize); ./dlls/comctl32/header.c:1095: infoPtr->items = ReAlloc(infoPtr->items, sizeof(HEADER_ITEM) * infoPtr->uNumItem); ./dlls/comctl32/header.c:1096: infoPtr->order = ReAlloc(infoPtr->order, sizeof(INT) * infoPtr->uNumItem); ./dlls/comctl32/header.c:1289: infoPtr->items = ReAlloc(infoPtr->items, sizeof(HEADER_ITEM) * infoPtr->uNumItem); ./dlls/comctl32/header.c:1290: infoPtr->order = ReAlloc(infoPtr->order, sizeof(INT) * infoPtr->uNumItem); ./dlls/comctl32/propsheet.c:2283: ppi = (PropPageInfo*) ReAlloc(psInfo->proppage, ./dlls/comctl32/rebar.c:1924: infoPtr->bands = ReAlloc(infoPtr->bands, infoPtr->uNumBands * sizeof(REBAR_BAND)); ./dlls/comctl32/rebar.c:2275: infoPtr->bands = ReAlloc(infoPtr->bands, (infoPtr->uNumBands+1) * sizeof(REBAR_BAND)); ./dlls/comctl32/string.c:185: LPSTR ptr = ReAlloc (*lppDest, strlen (lpSrc) + 1); ./dlls/comctl32/string.c:242: LPWSTR ptr = ReAlloc (*lppDest, len * sizeof(WCHAR)); ./dlls/comctl32/syslink.c:760: nbl = ReAlloc(bl, (nBlocks + 1) * sizeof(DOC_TEXTBLOCK)); ./dlls/comctl32/tests/imagelist.c:642: my_is->iml_data = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, my_is->iml_data, my_is->iml_data_size); ./dlls/comctl32/tests/misc.c:140: p = pReAlloc(p, 2); ./dlls/comctl32/tests/misc.c:145: p = pReAlloc(NULL, 2); ./dlls/comctl32/tests/misc.c:27:static PVOID (WINAPI * pReAlloc)(PVOID, LONG); ./dlls/comctl32/tests/misc.c:58: COMCTL32_GET_PROC(72, ReAlloc); ./dlls/comctl32/tests/msg.c:38: msg_seq->sequence = HeapReAlloc(GetProcessHeap(), 0, ./dlls/comctl32/tests/subclass.c:127: sequence = HeapReAlloc( GetProcessHeap(), 0, sequence, sequence_size * sizeof (struct message) ); ./dlls/comctl32/toolbar.c:2836: infoPtr->bitmaps = ReAlloc(infoPtr->bitmaps, (infoPtr->nNumBitmapInfos + 1) * sizeof(TBITMAP_INFO)); ./dlls/comctl32/toolbar.c:2860: infoPtr->buttons = ReAlloc(infoPtr->buttons, sizeof(TBUTTON_INFO)*nNewButtons); ./dlls/comctl32/toolbar.c:2936: infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1)); ./dlls/comctl32/toolbar.c:2954: infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1)); ./dlls/comctl32/toolbar.c:2990: infoPtr->strings = ReAlloc(infoPtr->strings, sizeof(LPWSTR)*(infoPtr->nNumStrings+1)); ./dlls/comctl32/toolbar.c:3796: infoPtr->buttons = ReAlloc(infoPtr->buttons, sizeof(TBUTTON_INFO) * infoPtr->nNumButtons); ./dlls/comctl32/trackbar.c:1312: infoPtr->tics=ReAlloc( infoPtr->tics, ./dlls/comctl32/trackbar.c:163: infoPtr->tics=ReAlloc (infoPtr->tics, ./dlls/comctl32/treeview.c:1141: newText = ReAlloc(wineItem->pszText, len * sizeof(WCHAR)); ./dlls/comctl32/treeview.c:1161: wineItem->pszText = ReAlloc(wineItem->pszText, ./dlls/comctl32/treeview.c:3802: WCHAR *ptr = ReAlloc(editedItem->pszText, sizeof(WCHAR)*(iLength + 1)); ./dlls/comctl32/treeview.c:769: newText = (LPWSTR)ReAlloc(wineItem->pszText, buflen); ./dlls/comctl32/treeview.c:787: LPWSTR newText = ReAlloc(wineItem->pszText, len); ./dlls/comdlg32/printdlg16.c:475: lppd->hDevMode = GlobalReAlloc16(lppd->hDevMode, ./dlls/comdlg32/printdlg16.c:74: *hmem = GlobalReAlloc16(*hmem, size, GMEM_MOVEABLE); ./dlls/comdlg32/printdlg.c:206: *hmem = GlobalReAlloc(*hmem, size, GMEM_MOVEABLE); ./dlls/comdlg32/printdlg.c:2125: lppd->hDevMode = GlobalReAlloc(lppd->hDevMode, ./dlls/comdlg32/printdlg.c:2283: lppd->hDevMode = GlobalReAlloc(lppd->hDevMode, ./dlls/comdlg32/printdlg.c:249: *hmem = GlobalReAlloc(*hmem, size, GMEM_MOVEABLE); ./dlls/comdlg32/printdlg.c:2643: pda->pdlg.hDevMode = GlobalReAlloc(pda->pdlg.hDevMode, ./dlls/crypt32/cert.c:2030: field->indexes = CryptMemRealloc(field->indexes, ./dlls/crypt32/chain.c:1301: CryptMemRealloc(chain->context.rgpLowerQualityChainContext, ./dlls/crypt32/chain.c:295: chain->rgpElement = CryptMemRealloc(chain->rgpElement, ./dlls/crypt32/decode.c:670: itemSizes = CryptMemRealloc(itemSizes, ./dlls/crypt32/main.c:114:LPVOID WINAPI CryptMemRealloc(LPVOID pv, ULONG cbSize) ./dlls/crypt32/main.c:116: return HeapReAlloc(GetProcessHeap(), 0, pv, cbSize); ./dlls/crypt32/msg.c:1416: msg->msg_data.pbData = CryptMemRealloc(msg->msg_data.pbData, ./dlls/crypt32/msg.c:897: out->rgAttr = CryptMemRealloc(out->rgAttr, ./dlls/crypt32/oid.c:810: ret = CryptMemRealloc(multi, (len + lstrlenW(toAdd) + 1) * ./dlls/crypt32/rootstore.c:79: buffer->data = CryptMemRealloc(buffer->data, new_size); ./dlls/crypt32/serialize.c:97: buf = CryptMemRealloc(buf, propSize); ./dlls/crypt32/str.c:542: keeper->keyName = CryptMemRealloc(keeper->keyName, ./dlls/crypt32/str.c:723: info->rgRDN = CryptMemRealloc(info->rgRDN, ./dlls/crypt32/tests/main.c:203: buf = CryptMemRealloc(NULL, 0); ./dlls/crypt32/tests/main.c:206: buf = CryptMemRealloc(buf, 1); ./dlls/crypt32/tests/msg.c:500: accum->updates = CryptMemRealloc(accum->updates, ./dlls/cryptnet/cryptnet_main.c:549: object.pbData = CryptMemRealloc(object.pbData, ./dlls/d3d8/device.c:1616: convertedDecls = HeapReAlloc(GetProcessHeap(), 0, convertedDecls, ./dlls/d3d8/device.c:50: shader_handle *new_handles = HeapReAlloc(GetProcessHeap(), 0, This->shader_handles, new_size * sizeof(shader_handle)); ./dlls/d3d9/device.c:1136: convertedDecls = HeapReAlloc(GetProcessHeap(), 0, convertedDecls, ./dlls/dbghelp/coff.c:113: HeapReAlloc(GetProcessHeap(), 0, coff_files->files, ./dlls/dbghelp/coff.c:137: HeapReAlloc(GetProcessHeap(), 0, coff_file->entries, ./dlls/dbghelp/dbghelp.c:128: pcs->buffer = HeapReAlloc(GetProcessHeap(), 0, pcs->buffer, size); ./dlls/dbghelp/dbghelp.c:294: pcs->search_path = HeapReAlloc(GetProcessHeap(), 0, pcs->search_path, (len *= 2) * sizeof(WCHAR)); ./dlls/dbghelp/dbghelp.c:295: pcs->search_path = HeapReAlloc(GetProcessHeap(), 0, pcs->search_path, (size + 1) * sizeof(WCHAR)); ./dlls/dbghelp/dbghelp.c:300: pcs->search_path = HeapReAlloc(GetProcessHeap(), 0, pcs->search_path, (size + 1 + len + 1) * sizeof(WCHAR)); ./dlls/dbghelp/dbghelp.c:308: pcs->search_path = HeapReAlloc(GetProcessHeap(), 0, pcs->search_path, (size + 1 + len + 1) * sizeof(WCHAR)); ./dlls/dbghelp/minidump.c:228: dc->module = HeapReAlloc(GetProcessHeap(), 0, dc->module, ./dlls/dbghelp/minidump.c:310: dc->mem = HeapReAlloc(GetProcessHeap(), 0, dc->mem, ./dlls/dbghelp/minidump.c:91: dc->pcs_buffer = HeapReAlloc(GetProcessHeap(), 0, dc->pcs_buffer, ./dlls/dbghelp/msc.c:345: cv_current_module->defined_types = HeapReAlloc(GetProcessHeap(), ./dlls/dbghelp/source.c:87: module->sources = HeapReAlloc(GetProcessHeap(), 0, module->sources, ./dlls/dbghelp/stabs.c:1117: pending->vars = HeapReAlloc(GetProcessHeap(), 0, pending->vars, ./dlls/dbghelp/stabs.c:1232: stabbuff = HeapReAlloc(GetProcessHeap(), 0, stabbuff, stabbufflen); ./dlls/dbghelp/stabs.c:167: include_defs = HeapReAlloc(GetProcessHeap(), 0, include_defs, ./dlls/dbghelp/stabs.c:248: cu_vector = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/dbghelp/stabs.c:267: idef->vector = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/dbghelp/symbol.c:664: module->addr_sorttab = HeapReAlloc(GetProcessHeap(), 0, ./dlls/dbghelp/symbol.c:72: *mask = HeapReAlloc(GetProcessHeap(), 0, *mask, ++(*len)); ./dlls/ddraw/ddraw.c:3394: convertedDecls = HeapReAlloc(GetProcessHeap(), 0, convertedDecls, ./dlls/ddraw/tests/ddrawmodes.c:97: modes = realloc(modes, (modes_size *= 2) * sizeof(DDSURFACEDESC)); ./dlls/dinput/joystick_linuxinput.c:316: HeapReAlloc(GetProcessHeap(), 0, joydevs, (1+have_joydevs) * sizeof(struct JoyDev)); ./dlls/dmusic/dmusic.c:135: else This->ppPorts = HeapReAlloc(GetProcessHeap(), 0, This->ppPorts, sizeof(LPDIRECTMUSICPORT) * This->nrofports); ./dlls/dsound/buffer.c:121: This->dsb->notifies = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/dsound/capture.c:1143: device->pwave = HeapReAlloc(GetProcessHeap(), 0,device->pwave, device->nrofpwaves*sizeof(WAVEHDR)); ./dlls/dsound/capture.c:1423: newbuf = HeapReAlloc(GetProcessHeap(),0,device->buffer,buflen); ./dlls/dsound/capture.c:1468: newbuf = HeapReAlloc(GetProcessHeap(),0,device->buffer,buflen); ./dlls/dsound/capture.c:715: This->dscb->notifies = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/dsound/dsound.c:1808: newbuffers = HeapReAlloc(GetProcessHeap(),0,device->buffers,sizeof(IDirectSoundBufferImpl*)*(device->nrofbuffers+1)); ./dlls/dsound/dsound.c:1850: device->buffers = HeapReAlloc(GetProcessHeap(),0,device->buffers,sizeof(LPDIRECTSOUNDBUFFER8)*device->nrofbuffers); ./dlls/dsound/mixer.c:430: dsb->device->tmp_buffer = HeapReAlloc(GetProcessHeap(), 0, dsb->device->tmp_buffer, len); ./dlls/dsound/primary.c:218: newbuf = HeapReAlloc(GetProcessHeap(),0,device->buffer, buflen); ./dlls/dsound/primary.c:230: headers = HeapReAlloc(GetProcessHeap(),0,device->pwave, device->helfrags * sizeof(WAVEHDR)); ./dlls/dsound/primary.c:465: device->pwfx = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,device->pwfx,alloc_size); ./dlls/dsound/primary.c:537: device->mix_buffer = HeapReAlloc(GetProcessHeap(), 0, device->mix_buffer, device->mix_buffer_len); ./dlls/gdi32/enhmfdrv/init.c:206: emh = HeapReAlloc(GetProcessHeap(), 0, physDev->emh, nEmfSize); ./dlls/gdi32/enhmfdrv/objects.c:44: physDev->handles = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/gdi32/freetype.c:3615: font->gm = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, font->gm, ./dlls/gdi32/freetype.c:5062: font->kern_pairs = HeapReAlloc(GetProcessHeap(), 0, font->kern_pairs, ./dlls/gdi32/freetype.c:664: ret.array = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ret.array, ret.max_size * sizeof(*ret.array)); ./dlls/gdi32/gdiobj.c:697:void *GDI_ReallocObject( WORD size, HGDIOBJ handle, void *object ) ./dlls/gdi32/gdiobj.c:705: new_ptr = HeapReAlloc( GetProcessHeap(), 0, large_handles[i], size ); ./dlls/gdi32/metafile16.c:311: return (HMETAFILE16)GlobalReAlloc16( hMeta, 0, ./dlls/gdi32/metafile.c:200: mh = HeapReAlloc( GetProcessHeap(), 0, mh, size ); ./dlls/gdi32/metafile.c:303: mh = HeapReAlloc( GetProcessHeap(), 0, mh, ./dlls/gdi32/mfdrv/init.c:450: mh = HeapReAlloc( GetProcessHeap(), 0, physDev->mh, size); ./dlls/gdi32/mfdrv/objects.c:48: physDev->handles = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/gdi32/painting.c:1152: *PtsOut = HeapReAlloc( GetProcessHeap(), 0, *PtsOut, ./dlls/gdi32/painting.c:952: line_pts = HeapReAlloc(GetProcessHeap(), 0, line_pts, ./dlls/gdi32/palette.c:379: if (!(palPtr = GDI_ReallocObject( size, hPal, palPtr ))) return FALSE; ./dlls/gdi32/path.c:1797: pLinePts = HeapReAlloc(GetProcessHeap(), 0, pLinePts, ./dlls/gdi32/path.c:1935: pStrokes = HeapReAlloc(GetProcessHeap(), 0, pStrokes, numStrokes * sizeof(GdiPath*)); ./dlls/gdi32/region.c:1381: if (! (dst->rects = HeapReAlloc( GetProcessHeap(), 0, dst->rects, ./dlls/gdi32/region.c:151: *firstrect = HeapReAlloc( GetProcessHeap(), 0, *firstrect, (2 * (sizeof(RECT)) * (reg->size))); ./dlls/gdi32/region.c:1807: newReg->rects = HeapReAlloc( GetProcessHeap(), 0, newReg->rects, ./dlls/gdi32/region.c:2670: if (!(reg->rects = HeapReAlloc( GetProcessHeap(), 0, reg->rects, ./dlls/gdiplus/graphicspath.c:57: path->pathdata.Points = HeapReAlloc(GetProcessHeap(), 0, ./dlls/gdiplus/graphicspath.c:61: path->pathdata.Types = HeapReAlloc(GetProcessHeap(), 0, ./dlls/hhctrl.ocx/chm.c:109: buf = heap_realloc(buf, buf_size=entry.len); ./dlls/hhctrl.ocx/chm.c:42: chm->strings = heap_realloc_zero(chm->strings, ./dlls/hhctrl.ocx/content.c:80: buf->buf = heap_realloc(buf->buf, buf->size); ./dlls/hlink/hlink_main.c:297: buf = CoTaskMemRealloc(buf, size); ./dlls/imm32/imm.c:1969: newone = HeapReAlloc(GetProcessHeap(), 0, internal, real_size); ./dlls/inetcomm/mimeole.c:153: buf = HeapReAlloc(GetProcessHeap(), 0, buf, size + 1); ./dlls/kernel32/computername.c:89: extrabuf = HeapReAlloc( GetProcessHeap(), 0, extrabuf, ebufsize ) ; ./dlls/kernel32/editline.c:155: newline = HeapReAlloc(GetProcessHeap(), 0, ctx->line, sizeof(WCHAR) * newsize); ./dlls/kernel32/error16.c:129: ErrorString(ERR_GREALLOC), ./dlls/kernel32/error16.c:132: ErrorString(ERR_LREALLOC), ./dlls/kernel32/error16.c:92:#define ERR_GREALLOC 0x0002 ./dlls/kernel32/error16.c:95:#define ERR_LREALLOC 0x0005 ./dlls/kernel32/format_msg.c:191: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\ ./dlls/kernel32/format_msg.c:330: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize); ./dlls/kernel32/format_msg.c:411: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2*sizeof(WCHAR));\ ./dlls/kernel32/format_msg.c:546: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize*sizeof(WCHAR)); ./dlls/kernel32/global16.c:116: GLOBALARENA *pNewArena = realloc( pGlobalArena, ./dlls/kernel32/global16.c:222: SELECTOR_ReallocBlock( sel, ptr, size ); ./dlls/kernel32/global16.c:296:HGLOBAL16 WINAPI GlobalReAlloc16( ./dlls/kernel32/global16.c:336: SELECTOR_ReallocBlock( sel, 0, 1 ); ./dlls/kernel32/global16.c:388: newptr = HeapReAlloc( heap, ./dlls/kernel32/global16.c:389: (pArena->pageLockCount > 0) ? HEAP_REALLOC_IN_PLACE_ONLY : 0, ./dlls/kernel32/global16.c:414: sel = SELECTOR_ReallocBlock( sel, ptr, size ); ./dlls/kernel32/heap.c:1064:HLOCAL WINAPI LocalReAlloc( ./dlls/kernel32/heap.c:1069: return (HLOCAL)GlobalReAlloc( (HGLOBAL)handle, size, flags ); ./dlls/kernel32/heap.c:284:LPVOID WINAPI HeapReAlloc( HANDLE heap, DWORD flags, LPVOID ptr, SIZE_T size ) ./dlls/kernel32/heap.c:286: return RtlReAllocateHeap( heap, flags, ptr, size ); ./dlls/kernel32/heap.c:596:HGLOBAL WINAPI GlobalReAlloc( ./dlls/kernel32/heap.c:649: hnew=HeapReAlloc(GetProcessHeap(), heap_flags, hmem, size); ./dlls/kernel32/heap.c:674: else if((palloc = HeapReAlloc(GetProcessHeap(), heap_flags, ./dlls/kernel32/lcformat.c:1910: buf = HeapReAlloc(GetProcessHeap(), 0, buf, bufSz); ./dlls/kernel32/local16.c:1206:HLOCAL16 WINAPI LocalReAlloc16( HLOCAL16 handle, WORD size, UINT16 flags ) ./dlls/kernel32/local16.c:1408: if (size == oldsize) hmem = 0; /* Realloc failed */ ./dlls/kernel32/local16.c:2037:DWORD WINAPI Local32ReAlloc16( HANDLE heap, DWORD addr, INT16 type, ./dlls/kernel32/local16.c:2052: ptr = HeapReAlloc( header->heap, ./dlls/kernel32/local16.c:524: hseg = GlobalReAlloc16( hseg, 0x10000, GMEM_FIXED ); ./dlls/kernel32/module.c:781: if (!(new_ptr = HeapReAlloc( GetProcessHeap(), 0, ret, path_len + len * sizeof(WCHAR) ))) ./dlls/kernel32/ne_segment.c:853: newModule = HeapReAlloc( GetProcessHeap(), 0, ./dlls/kernel32/resource16.c:100: newElem = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/kernel32/resource16.c:344: handle = GlobalReAlloc16( hMemObj, pNameInfo->length << sizeShift, 0 ); ./dlls/kernel32/selector.c:163:WORD SELECTOR_ReallocBlock( WORD sel, const void *base, DWORD size ) ./dlls/kernel32/selector.c:173: sel = wine_ldt_realloc_entries( sel, oldcount, newcount ); ./dlls/kernel32/snoop16.c:147: *dll = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, *dll, sizeof(SNOOP16_DLL)+strlen(name)); ./dlls/kernel32/tests/alloc.c:112: mem2a=HeapReAlloc(heap,HEAP_ZERO_MEMORY,mem2,memchunk+5*sysInfo.dwPageSize); ./dlls/kernel32/tests/alloc.c:127: mem1a=HeapReAlloc(heap,HEAP_REALLOC_IN_PLACE_ONLY,mem1,memchunk+sysInfo.dwPageSize); ./dlls/kernel32/tests/alloc.c:208: mem2a=GlobalReAlloc(mem2,0,GMEM_MODIFY | GMEM_MOVEABLE); ./dlls/kernel32/tests/alloc.c:217: mem2a=GlobalReAlloc(mem2,2*memchunk,GMEM_MOVEABLE | GMEM_ZEROINIT); ./dlls/kernel32/tests/alloc.c:309: mem2a=LocalReAlloc(mem2,2*memchunk,LMEM_MOVEABLE | LMEM_ZEROINIT); ./dlls/kernel32/tests/heap.c:212: gbl = LocalReAlloc(gbl, 10, LMEM_MOVEABLE); ./dlls/kernel32/tests/heap.c:217: gbl = LocalReAlloc(gbl, 0, LMEM_MOVEABLE); ./dlls/kernel32/tests/heap.c:226: gbl = LocalReAlloc(0, 10, LMEM_MOVEABLE); ./dlls/kernel32/tests/heap.c:51: mem = HeapReAlloc(GetProcessHeap(), 0, NULL, 10); ./dlls/kernel32/tests/heap.c:67: msecond = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, ~0UL - 7); ./dlls/kernel32/tests/heap.c:69: msecond = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, ~0UL); ./dlls/kernel32/tests/heap.c:79: gbl = GlobalReAlloc(gbl, 10, GMEM_MOVEABLE); ./dlls/kernel32/tests/heap.c:84: gbl = GlobalReAlloc(gbl, 0, GMEM_MOVEABLE); ./dlls/kernel32/tests/heap.c:93: gbl = GlobalReAlloc(0, 10, GMEM_MOVEABLE); ./dlls/kernel32/toolhelp16.c:113: notifys=HeapReAlloc( GetProcessHeap(), 0, notifys, ./dlls/kernel32/toolhelp16.c:87: notifys=HeapReAlloc( GetProcessHeap(), 0, notifys, ./dlls/kernel32/toolhelp.c:114: *ldr_mod = HeapReAlloc( GetProcessHeap(), 0, *ldr_mod, ./dlls/kernel32/toolhelp.c:208: *pspi = HeapReAlloc( GetProcessHeap(), 0, *pspi, size *= 2 ); ./dlls/mapi32/imalloc.c:122:static LPVOID WINAPI IMAPIMalloc_fnRealloc(LPMALLOC iface, LPVOID pv, DWORD cb) ./dlls/mapi32/imalloc.c:130: return LocalReAlloc((HANDLE) pv, cb, LMEM_MOVEABLE); ./dlls/mapi32/imalloc.c:177: IMAPIMalloc_fnRealloc, ./dlls/mciavi32/mmoutput.c:238: wma->lpAudioIndex = HeapReAlloc(GetProcessHeap(), 0, wma->lpAudioIndex, ./dlls/mlang/mlang.c:1849: data->info = HeapReAlloc(GetProcessHeap(), 0, data->info, data->allocated * sizeof(RFC1766INFO)); ./dlls/mpr/mpr_main.c:47:LPVOID WINAPI MPR_ReAlloc( LPVOID lpSrc, DWORD dwSize ) ./dlls/mpr/mpr_main.c:50: return HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, lpSrc, dwSize ); ./dlls/mscms/profile.c:691: char **tmp = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/mscms/profile.c:819: WCHAR **tmp = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/mshtml/conpoint.c:155: This->sinks = heap_realloc(This->sinks,(++This->sinks_size)*sizeof(*This->sinks)); ./dlls/mshtml/htmlelem.c:53: buf->buf = heap_realloc(buf->buf, buf->size*sizeof(HTMLElement**)); ./dlls/mshtml/htmlelem.c:65: buf->buf = heap_realloc(buf->buf, buf->len*sizeof(HTMLElement**)); ./dlls/mshtml/install.c:235: file_name = heap_realloc(file_name, size+sizeof(GECKO_FILE_NAME)); ./dlls/mshtml/navigate.c:753: headers = heap_realloc(headers,(headers_len+len+1)*sizeof(WCHAR)); ./dlls/mshtml/navigate.c:776: post_data = GlobalReAlloc(post_data, post_data_len+1, 0); ./dlls/mshtml/txtrange.c:177: buf->buf = heap_realloc(buf->buf, buf->size * sizeof(WCHAR)); ./dlls/mshtml/txtrange.c:199: buf->buf = heap_realloc(buf->buf, buf->size * sizeof(WCHAR)); ./dlls/msi/action.c:3128: filename = msi_realloc(filename, len * sizeof(WCHAR) + sizeof(szlnk)); ./dlls/msi/action.c:4510: vector = msi_realloc(vector, (*numargs + 1) * sizeof(LPWSTR)); ./dlls/msi/action.c:5208: file->dest = msi_realloc(file->dest, size * sizeof(WCHAR)); ./dlls/msi/database.c:416: columns = msi_realloc(columns, sql_size * sizeof(WCHAR)); ./dlls/msi/database.c:543: columns = msi_realloc(columns, sql_size * sizeof(WCHAR)); ./dlls/msi/database.c:589: temp_columns = msi_realloc(columns, sql_size * sizeof(WCHAR)); ./dlls/msi/database.c:700: temp_records = msi_realloc(records, (num_records + 1) * sizeof(LPWSTR *)); ./dlls/msi/database.c:807: char *p = msi_realloc( buffer, sz + 1 ); ./dlls/msi/dialog.c:1534: buf = msi_realloc( buf, sz*sizeof(WCHAR) ); ./dlls/msi/files.c:525: src = msi_realloc(src, (lstrlenW(src) + lstrlenW(ptr)) * sizeof(WCHAR)); ./dlls/msi/format.c:478: nd2 = msi_realloc(newdata,(size+chunk)); ./dlls/msi/format.c:498: tgt = msi_realloc(newdata,size); ./dlls/msi/format.c:591: nd2= msi_realloc(newdata,(size + chunk)); ./dlls/msi/format.c:82: buf = msi_realloc(buf, (max_len + 1) * sizeof(WCHAR)); ./dlls/msi/format.c:98: rc = msi_realloc(rc, size * sizeof(WCHAR)); ./dlls/msi/handle.c:96: p = msi_realloc_zero(msihandletable, ./dlls/msi/helpers.c:403: newbuf = msi_realloc( package->script->Actions[script], ./dlls/msi/helpers.c:977: newbuf = msi_realloc( package->script->UniqueActions, ./dlls/msi/package.c:1092: message = msi_realloc(message,total_size*sizeof (WCHAR)); ./dlls/msi/sql.tab.c:2519: list = msi_realloc(list, size * sizeof(WCHAR)); ./dlls/msi/sql.y:686: list = msi_realloc(list, size * sizeof(WCHAR)); ./dlls/msi/streams.c:62: sv->streams = msi_realloc(sv->streams, sv->max_streams * sizeof(STREAM *)); ./dlls/msi/string.c:146: p = msi_realloc_zero( st->strings, sz*sizeof(msistring) ); ./dlls/msi/table.c:1057: table->data[n] = msi_realloc( table->data[n], size ); ./dlls/msi/table.c:1394: p = msi_realloc( *data_ptr, sz ); ./dlls/msvcrt/data.c:114: wblk = HeapReAlloc( GetProcessHeap(), 0, wblk, count* sizeof(MSVCRT_wchar_t*) + len * sizeof(MSVCRT_wchar_t)); ./dlls/msvcrt/data.c:82: blk = HeapReAlloc( GetProcessHeap(), 0, blk, count* sizeof(char*) + len ); ./dlls/msvcrt/exit.c:82: tmp = MSVCRT_realloc(*start, len * sizeof(tmp)); ./dlls/msvcrt/heap.c:146: return HeapReAlloc(GetProcessHeap(), HEAP_REALLOC_IN_PLACE_ONLY, mem, size); ./dlls/msvcrt/heap.c:293: if (size) return HeapReAlloc(GetProcessHeap(), 0, ptr, size); ./dlls/msvcrt/heap.c:455: temp = MSVCRT_realloc(*saved, size + alignment + sizeof(void *)); ./dlls/msvcrt/tests/heap.c:123: mem2 = p_aligned_realloc(mem, size2, alignment); ./dlls/msvcrt/tests/heap.c:195: mem2 = p_aligned_offset_realloc(mem, size2, alignment, offset); ./dlls/msvcrt/tests/heap.c:425: mem = realloc(NULL, 10); ./dlls/msvcrt/tests/heap.c:428: mem = realloc(mem, 20); ./dlls/msvcrt/tests/heap.c:431: mem = realloc(mem, 0); ./dlls/msvcrt/tests/heap.c:434: mem = realloc(NULL, 0); ./dlls/msvcrt/tests/heap.c:91:static void test_aligned_realloc(size_t size1, size_t size2, size_t alignment) ./dlls/netapi32/apibuf.c:61:NET_API_STATUS WINAPI NetApiBufferReallocate(LPVOID OldBuffer, DWORD NewByteCount, ./dlls/netapi32/apibuf.c:68: *NewBuffer = HeapReAlloc(GetProcessHeap(), 0, OldBuffer, NewByteCount); ./dlls/netapi32/netbios.c:436: newSessions = HeapReAlloc(GetProcessHeap(), ./dlls/netapi32/netbios.c:87: gNBTable.table = HeapReAlloc(GetProcessHeap(), ./dlls/netapi32/tests/apibuf.c:101: if (pNetApiBufferAllocate && pNetApiBufferFree && pNetApiBufferReallocate && pNetApiBufferSize) ./dlls/netapi32/tests/apibuf.c:34:static NET_API_STATUS (WINAPI *pNetApiBufferReallocate)(LPVOID,DWORD,LPVOID*)=NULL; ./dlls/netapi32/tests/apibuf.c:50: ok(pNetApiBufferReallocate(p, 1500, (LPVOID *) &p) == NERR_Success, ./dlls/netapi32/tests/apibuf.c:64: ok(pNetApiBufferReallocate(0, 1500, (LPVOID *) &p) == NERR_Success, "Reallocate with OldBuffer = NULL failed\n"); ./dlls/netapi32/tests/apibuf.c:67: ok(pNetApiBufferReallocate(p, 0, (LPVOID *) &p) == NERR_Success, "Not freed\n"); ./dlls/netapi32/wksta.c:333: NetApiBufferReallocate( ./dlls/netapi32/wksta.c:445: NetApiBufferReallocate( ./dlls/ntdll/actctx.c:1906: if (!(path = RtlReAllocateHeap( GetProcessHeap(), 0, path_us.Buffer, ./dlls/ntdll/actctx.c:292: ptr = RtlReAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/ntdll/actctx.c:319: ptr = RtlReAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/ntdll/actctx.c:353: ptr = RtlReAllocateHeap( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/ntdll/actctx.c:467: ptr = RtlReAllocateHeap(GetProcessHeap(), 0, acl->dependencies, ./dlls/ntdll/directory.c:2025: if (!(new_name = RtlReAllocateHeap( GetProcessHeap(), 0, unix_name, unix_len ))) ./dlls/ntdll/heap.c:1313:PVOID WINAPI RtlReAllocateHeap( HANDLE heap, ULONG flags, PVOID ptr, SIZE_T size ) ./dlls/ntdll/loadorder.c:178: env_list.order = RtlReAllocateHeap(GetProcessHeap(), 0, env_list.order, ./dlls/ntdll/nt.c:291: buffer = RtlReAllocateHeap(GetProcessHeap(), 0, buffer, reply->user_len); ./dlls/ntdll/path.c:1044: if (!(newcwd = RtlReAllocateHeap( GetProcessHeap(), 0, cwd, size ))) ./dlls/ntdll/path.c:469: WCHAR *newname = RtlReAllocateHeap(GetProcessHeap(), 0, name, ./dlls/ntdll/relay.c:671: *dll = RtlReAllocateHeap(GetProcessHeap(), ./dlls/ntdll/tests/info.c:256: spi = HeapReAlloc(GetProcessHeap(), 0, spi , SystemInformationLength *= 2); ./dlls/ntdll/tests/info.c:356: sppi = HeapReAlloc(GetProcessHeap(), 0, sppi , NeededLength + 2); ./dlls/ntdll/tests/info.c:380: smi = HeapReAlloc(GetProcessHeap(), 0, smi , SystemInformationLength); ./dlls/ntdll/tests/info.c:417: shi = HeapReAlloc(GetProcessHeap(), 0, shi , SystemInformationLength); ./dlls/ntdll/tests/reg.c:100:static NTSTATUS (WINAPI * pRtlReAllocateHeap)(IN PVOID, IN ULONG, IN PVOID, IN ULONG); ./dlls/ntdll/tests/reg.c:144: NTDLL_GET_PROC(RtlReAllocateHeap) ./dlls/ntdll/tests/reg.c:466: winetestpath.Buffer = (PWSTR)pRtlReAllocateHeap(GetProcessHeap(), HEAP_ZERO_MEMORY, winetestpath.Buffer, ./dlls/ole32/bindctx.c:483: This->bindCtxTable = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,This->bindCtxTable, ./dlls/ole32/compositemoniker.c:1143: *ppszDisplayName=CoTaskMemRealloc(*ppszDisplayName,lengthStr * sizeof(WCHAR)); ./dlls/ole32/compositemoniker.c:1465: This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker)); ./dlls/ole32/compositemoniker.c:1819: This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker)); ./dlls/ole32/compositemoniker.c:1873: This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker)); ./dlls/ole32/compositemoniker.c:1916: This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker)); ./dlls/ole32/compositemoniker.c:249: This->tabMoniker=HeapReAlloc(GetProcessHeap(),0,This->tabMoniker,This->tabSize*sizeof(IMoniker)); ./dlls/ole32/filemoniker.c:1388: This->filePathName=HeapReAlloc(GetProcessHeap(),0,This->filePathName,(sizeStr+1)*sizeof(WCHAR)); ./dlls/ole32/hglobalstream.c:436: supportHandle = GlobalReAlloc(This->supportHandle, libNewSize.u.LowPart, 0); ./dlls/ole32/ifs.c:177: preAllocResult = IMallocSpy_PreAlloc(Malloc32.pSpy, cb); ./dlls/ole32/ifs.c:201:static LPVOID WINAPI IMalloc_fnRealloc(LPMALLOC iface,LPVOID pv,DWORD cb) { ./dlls/ole32/ifs.c:213: cb = IMallocSpy_PreRealloc(Malloc32.pSpy, pv, cb, &pRealMemory, fSpyed); ./dlls/ole32/ifs.c:231: else if (cb) pNewMemory = HeapReAlloc(GetProcessHeap(),0,pv,cb); ./dlls/ole32/ifs.c:238: pNewMemory = IMallocSpy_PostRealloc(Malloc32.pSpy, pNewMemory, TRUE); ./dlls/ole32/ifs.c:426:static ULONG WINAPI IMallocSpy_fnPreAlloc(LPMALLOCSPY iface, ULONG cbRequest) ./dlls/ole32/ifs.c:451:static ULONG WINAPI IMallocSpy_fnPreRealloc(LPMALLOCSPY iface, void* pRequest, ULONG cbRequest, void** ppNewRequest, BOOL fSpyed) ./dlls/ole32/ifs.c:459:static PVOID WINAPI IMallocSpy_fnPostRealloc(LPMALLOCSPY iface, void* pActual, BOOL fSpyed) ./dlls/ole32/ifs.c:594:LPVOID WINAPI CoTaskMemRealloc(LPVOID pvOld, ULONG size) ./dlls/ole32/ifs.c:596: return IMalloc_Realloc((LPMALLOC)&Malloc32, pvOld, size); ./dlls/ole32/ifs.c:81: else NewSpyedBlocks = LocalReAlloc(Malloc32.SpyedBlocks, NewLength * sizeof(PVOID), LMEM_ZEROINIT); ./dlls/ole32/itemmoniker.c:291: This->itemDelimiter=HeapReAlloc(GetProcessHeap(),0,This->itemDelimiter,lenW*sizeof(WCHAR)); ./dlls/ole32/itemmoniker.c:316: This->itemName=HeapReAlloc(GetProcessHeap(),0,This->itemName,lenW*sizeof(WCHAR)); ./dlls/ole32/memlockbytes16.c:355: supportHandle = GlobalReAlloc16(This->supportHandle, libNewSize.u.LowPart, 0); ./dlls/ole32/memlockbytes.c:518: supportHandle = GlobalReAlloc(This->supportHandle, libNewSize.u.LowPart, 0); ./dlls/ole32/ole16.c:126:SEGPTR CDECL IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb) ./dlls/ole32/ole16.c:134: ret = MapLS( HeapReAlloc( GetProcessHeap(), 0, MapSL(pv), cb ) ); ./dlls/ole32/ole16.c:190: VTENT(Realloc); ./dlls/ole32/oleobj.c:341: This->arrayOfSinks = HeapReAlloc(GetProcessHeap(), ./dlls/ole32/oleobj.c:718: This->Connections = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/ole32/storage32.c:4094: This->stackToVisit = HeapReAlloc( ./dlls/oleaut32/connpt.c:276: This->sinks = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->sinks, ./dlls/oleaut32/ole2disp.c:112:INT16 WINAPI SysReAllocString16(LPBSTR16 pbstr,LPCOLESTR16 oleStr) ./dlls/oleaut32/ole2disp.c:174:int WINAPI SysReAllocStringLen16(BSTR16 *old,const char *in,int len) ./dlls/oleaut32/oleaut.c:292:int WINAPI SysReAllocStringLen(BSTR* old, const OLECHAR* str, unsigned int len) ./dlls/oleaut32/oleaut.c:300: DWORD *ptr = HeapReAlloc(GetProcessHeap(),0,((DWORD*)*old)-1,newbytelen+sizeof(WCHAR)+sizeof(DWORD)); ./dlls/oleaut32/oleaut.c:411:INT WINAPI SysReAllocString(LPBSTR old,LPCOLESTR str) ./dlls/oleaut32/olefont.c:474: this->description.lpstrName = HeapReAlloc(GetProcessHeap(), ./dlls/oleaut32/olepicture.c:1850: xbuf = HeapReAlloc (GetProcessHeap(), HEAP_ZERO_MEMORY, xbuf, origsize); ./dlls/oleaut32/olepicture.c:2094: pIconData = HeapReAlloc(GetProcessHeap(), 0, pIconData, iDataSize); ./dlls/oleaut32/tests/olepicture.c:653: supportHandle = GlobalReAlloc(This->supportHandle, libNewSize.u.LowPart, 0); ./dlls/oleaut32/tests/tmarshal.c:45: if ((ret = realloc( list[idx], size ))) list[idx] = ret; ./dlls/oleaut32/tests/vartype.c:5121:static void test_SysReAllocString(void) ./dlls/oleaut32/tests/vartype.c:5140: changed = SysReAllocString(&str, szSmaller); ./dlls/oleaut32/tests/vartype.c:5148: changed = SysReAllocString(&str, szLarger); ./dlls/oleaut32/tests/vartype.c:5160:static void test_SysReAllocStringLen(void) ./dlls/oleaut32/tests/vartype.c:5179: changed = SysReAllocStringLen(&str, szSmaller, 1); ./dlls/oleaut32/tests/vartype.c:5187: changed = SysReAllocStringLen(&str, szLarger, 6); ./dlls/oleaut32/tests/vartype.c:5195: changed = SysReAllocStringLen(&str, str, 6); ./dlls/oleaut32/tests/vartype.c:6052: test_SysReAllocString(); ./dlls/oleaut32/tests/vartype.c:6053: test_SysReAllocStringLen(); ./dlls/oleaut32/tmarshal.c:1421: buf.base = HeapReAlloc(GetProcessHeap(),0,buf.base,msg.cbBuffer); ./dlls/oleaut32/tmarshal.c:84: buf->base = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, buf->base, newsize); ./dlls/oleaut32/typelib2.c:460: block = HeapReAlloc(GetProcessHeap(), 0, This->typelib_segment_data[segment], block_size << 1); ./dlls/oleaut32/ungif.c:202: New->ExtensionBlocks = ungif_realloc(New->ExtensionBlocks, ./dlls/oleaut32/ungif.c:395: if ((GifFile->SavedImages = ungif_realloc(GifFile->SavedImages, ./dlls/oleaut32/ungif.c:68:static void *ungif_realloc( void *ptr, size_t sz ) ./dlls/oleaut32/ungif.c:70: return HeapReAlloc( GetProcessHeap(), 0, ptr, sz ); ./dlls/quartz/filtergraph.c:100: omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(Event)); ./dlls/riched20/clipboard.c:360: pData->hData = GlobalReAlloc(pData->hData, nNewSize, 0); ./dlls/riched20/clipboard.c:382: GlobalReAlloc(gds.hData, gds.nLength+1, 0); ./dlls/riched20/reader.c:2293: rtfHashTable[index].value = heap_realloc(rtfHashTable[index].value, sizeof(RTFKey *) * (rtfHashTable[index].count + 1)); ./dlls/riched20/reader.c:2710: info->cpOutputBuffer = heap_realloc(info->cpOutputBuffer, info->dwMaxCPOutputCount); ./dlls/rpcrt4/ndr_fullpointer.c:87: HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/rpcrt4/ndr_fullpointer.c:91: HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/rpcrt4/rpc_binding.c:331: LPSTR ndst = HeapReAlloc(GetProcessHeap(), 0, dst, (len+slen+2)*sizeof(CHAR)); ./dlls/rpcrt4/rpc_binding.c:345: LPWSTR ndst = HeapReAlloc(GetProcessHeap(), 0, dst, (len+slen+2)*sizeof(WCHAR)); ./dlls/rpcrt4/rpc_message.c:59:static RPC_STATUS I_RpcReAllocateBuffer(PRPC_MESSAGE pMsg); ./dlls/rpcrt4/rpc_message.c:800: status = I_RpcReAllocateBuffer(pMsg); ./dlls/rpcrt4/rpc_message.c:929:static RPC_STATUS I_RpcReAllocateBuffer(PRPC_MESSAGE pMsg) ./dlls/rpcrt4/rpc_message.c:932: pMsg->Buffer = HeapReAlloc(GetProcessHeap(), 0, pMsg->Buffer, pMsg->BufferLength); ./dlls/rpcrt4/rpc_transport.c:1241: poll_info = HeapReAlloc(GetProcessHeap(), 0, poll_info, *count*sizeof(*poll_info)); ./dlls/rpcrt4/rpc_transport.c:570: objs = HeapReAlloc(GetProcessHeap(), 0, objs, *count*sizeof(HANDLE)); ./dlls/rsaenh/mpi.c:1953: tmp = realloc (a->dp, sizeof (mp_digit) * size); ./dlls/rsaenh/mpi.c:3612: if ((tmp = realloc (a->dp, sizeof (mp_digit) * a->used)) == NULL) { ./dlls/sane.ds/ui.c:290: rc = HeapReAlloc(GetProcessHeap(),0,lead_static,leading_len+local_len + padding); ./dlls/sane.ds/ui.c:350: rc = HeapReAlloc(GetProcessHeap(),0,rc,leading_len+local_len + padding ./dlls/sane.ds/ui.c:434: newone = HeapReAlloc(GetProcessHeap(),0,all_controls, ./dlls/secur32/dispatcher.c:152: char *buf = HeapReAlloc(GetProcessHeap(), 0, helper->com_buf, ./dlls/setupapi/devinst.c:313: iface->instances = HeapReAlloc(GetProcessHeap(), 0, ./dlls/setupapi/devinst.c:542: set->devices = HeapReAlloc(GetProcessHeap(), 0, set->devices, ./dlls/setupapi/dirid.c:213: new = HeapReAlloc( GetProcessHeap(), 0, user_dirids, ./dlls/setupapi/install.c:597: if (!(p = HeapReAlloc( GetProcessHeap(), 0, path, ./dlls/setupapi/install.c:646: if (!(p = HeapReAlloc( GetProcessHeap(), 0, path, ./dlls/setupapi/misc.c:101: return HeapReAlloc(GetProcessHeap(), 0, lpSrc, dwSize); ./dlls/setupapi/misc.c:811: SecDesc = (PSECURITY_DESCRIPTOR)MyRealloc(SecDesc, dwSize); ./dlls/setupapi/misc.c:96:LPVOID WINAPI MyRealloc(LPVOID lpSrc, DWORD dwSize) ./dlls/setupapi/parser.c:165: new_array = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, array, new_count * elem ); ./dlls/setupapi/parser.c:246: if (!(section = HeapReAlloc( GetProcessHeap(), 0, section, size ))) return NULL; ./dlls/setupapi/parser.c:885: file->sections = HeapReAlloc( GetProcessHeap(), 0, file->sections, ./dlls/setupapi/parser.c:891: file->fields = HeapReAlloc( GetProcessHeap(), 0, file->fields, ./dlls/setupapi/parser.c:895: file->strings = HeapReAlloc( GetProcessHeap(), HEAP_REALLOC_IN_PLACE_ONLY, file->strings, ./dlls/setupapi/virtcopy.c:129: vhstrlist = HeapReAlloc(heap, HEAP_ZERO_MEMORY, vhstrlist, ./dlls/setupapi/virtcopy.c:240: pvnlist = HeapReAlloc(heap, HEAP_ZERO_MEMORY, pvnlist, ./dlls/shdocvw/events.c:209: This->sinks = heap_realloc(This->sinks, ./dlls/shell32/control.c:88: applet = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, applet, ./dlls/shell32/dialogs.c:278: pszCmd = HeapReAlloc(GetProcessHeap(), 0, pszCmd, icCmd) ; ./dlls/shell32/dialogs.c:347: pszList = HeapReAlloc(GetProcessHeap(), 0, pszList, ++icList) ; ./dlls/shell32/shell32_main.c:112: hargv=GlobalReAlloc(hargv, size, 0); ./dlls/shell32/shlfileop.c:926: FILE_ENTRY *new = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, list->feFiles, ./dlls/shlwapi/clist.c:112: lpIter = (LPDATABLOCK_HEADER)LocalReAlloc((HLOCAL)*lppList, ./dlls/shlwapi/clist.c:288: lpTemp = (LPDATABLOCK_HEADER)LocalReAlloc((HLOCAL)pItem, ulSize, ./dlls/shlwapi/clist.c:404: lpList = (LPDATABLOCK_HEADER)LocalReAlloc((HLOCAL)*lppList, ulNewSize, ./dlls/shlwapi/ordinal.c:2163: info->mem = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, info->mem, size); ./dlls/snmpapi/main.c:165:LPVOID WINAPI SnmpUtilMemReAlloc(LPVOID mem, UINT nbytes) ./dlls/snmpapi/main.c:168: return HeapReAlloc(GetProcessHeap(), 0, mem, nbytes); ./dlls/snmpapi/main.c:285: if (!(ids = HeapReAlloc(GetProcessHeap(), 0, dst->ids, size))) ./dlls/twain_32/dsm_ctrl.c:87: devices = realloc(devices, sizeof(devices[0])*(nrdevices+1)); ./dlls/urlmon/umon.c:1052: This->URLName = heap_realloc(This->URLName, (sizeStr+1)*sizeof(WCHAR)); ./dlls/user32/dde_misc.c:1327: hData = GlobalReAlloc((HGLOBAL)hData, new_sz + sizeof(DDE_DATAHANDLE_HEAD), ./dlls/user32/edit.c:1733: hloc32W_new = LocalReAlloc(es->hloc32W, alloc_size, LMEM_MOVEABLE | LMEM_ZEROINIT); ./dlls/user32/edit.c:1900: if ((hNew32W = LocalReAlloc(es->hloc32W, alloc_size, LMEM_MOVEABLE | LMEM_ZEROINIT))) { ./dlls/user32/edit.c:1937: if ((es->undo_text = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, es->undo_text, alloc_size))) { ./dlls/user32/edit.c:2474: hloc32A_new = LocalReAlloc(es->hloc32A, alloc_size, LMEM_MOVEABLE | LMEM_ZEROINIT); ./dlls/user32/edit.c:2503: hloc16_new = LocalReAlloc16(es->hloc16, alloc_size, LMEM_MOVEABLE | LMEM_ZEROINIT); ./dlls/user32/listbox.c:1560: item = HeapReAlloc( GetProcessHeap(), 0, descr->items, ./dlls/user32/listbox.c:1726: item = HeapReAlloc( GetProcessHeap(), 0, descr->items, ./dlls/user32/listbox.c:735: item = HeapReAlloc( GetProcessHeap(), 0, descr->items, ./dlls/user32/mdi.c:1229: ci->child = HeapReAlloc(GetProcessHeap(), 0, ci->child, sizeof(HWND) * ci->nActiveChildren); ./dlls/user32/menu.c:3856: menu->items = HeapReAlloc( GetProcessHeap(), 0, menu->items, ./dlls/user32/message.c:1328: tmp = HeapReAlloc( GetProcessHeap(), 0, dde_pairs, ./dlls/user32/message.c:267: if (!(ret = HeapReAlloc( GetProcessHeap(), 0, *buffer, size ))) ./dlls/user32/msgbox.c:55: threadWindows->handles = HeapReAlloc(GetProcessHeap(), 0, threadWindows->handles, ./dlls/user32/static.c:728: if (!(text = HeapReAlloc( GetProcessHeap(), 0, text, buf_size * sizeof(WCHAR) ))) ./dlls/user32/tests/msg.c:1498: sequence = HeapReAlloc( GetProcessHeap(), 0, sequence, sequence_size * sizeof (struct message) ); ./dlls/user32/user16.c:1761: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,talloced*2);\ ./dlls/user32/user16.c:1826: b = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, b, sz); ./dlls/user32/user16.c:1866: target = HeapReAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,target,nSize); ./dlls/user32/user_private.h:55: ret = LocalReAlloc16 (handle, size, flags); ./dlls/user32/win.c:278: HWND *new_list = HeapReAlloc( GetProcessHeap(), 0, list, (size+16) * sizeof(HWND) ); ./dlls/user32/winpos.c:1773: newhdwp = USER_HEAP_REALLOC( hdwp, ./dlls/usp10/usp10.c:185:static inline void *heap_realloc_zero(LPVOID mem, SIZE_T size) ./dlls/usp10/usp10.c:187: return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, mem, size); ./dlls/usp10/usp10.c:626: if (!(tmp = heap_realloc_zero(analysis->pItem, num_items * sizeof(SCRIPT_ITEM) + 1))) ./dlls/winealsa.drv/alsa.c:136: omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(ALSA_MSG)); ./dlls/winealsa.drv/dscapture.c:231: notifies = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, This->notifies, len); ./dlls/winealsa.drv/waveinit.c:455: *array = HeapReAlloc(GetProcessHeap(), 0, *array, sizeof(*ww) * (*alloced)); ./dlls/winedos/int31.c:1288: ptr = DPMI_xrealloc( (void *)handle, size ); ./dlls/winedos/int31.c:252:static LPVOID DPMI_xrealloc( LPVOID ptr, DWORD newsize ) ./dlls/winedos/vga.c:700: vga_text_old = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/wineesd.drv/audio.c:586: mr->messages = HeapReAlloc(GetProcessHeap(),0,mr->messages, mr->ring_buffer_size * sizeof(RING_MSG)); ./dlls/wineesd.drv/audio.c:819: wwo->sound_buffer = HeapReAlloc(GetProcessHeap(), 0, wwo->sound_buffer, toWrite); ./dlls/winejack.drv/audio.c:518: wwo->sound_buffer = HeapReAlloc(GetProcessHeap(), 0, wwo->sound_buffer, wwo->buffer_size); ./dlls/winenas.drv/audio.c:499: mr->messages = HeapReAlloc(GetProcessHeap(),0,mr->messages, mr->ring_buffer_size * sizeof(RING_MSG)); ./dlls/wineoss.drv/audio.c:1314: omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(OSS_MSG)); ./dlls/wineoss.drv/dscapture.c:329: This->capture_buffer->notifies = HeapReAlloc(GetProcessHeap(), ./dlls/wineoss.drv/dsrender.c:315: This->notifies = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/wineoss.drv/dsrender.c:472: This->drv->secondaries = HeapReAlloc(GetProcessHeap(),0, ./dlls/wineps.drv/glyphlist.c:91: newGlyphList = HeapReAlloc(PSDRV_Heap, 0, glyphList, ./dlls/wineps.drv/ppd.c:274: buf = HeapReAlloc( PSDRV_Heap, 0, buf, ./dlls/wineps.drv/ppd.c:285: buf = HeapReAlloc( PSDRV_Heap, 0, buf, len + sl + 1 ); ./dlls/wineps.drv/type1.c:132: str->str = HeapReAlloc(GetProcessHeap(), 0, str->str, str->max_len); ./dlls/wineps.drv/type1.c:214: t1->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/wineps.drv/type42.c:258: t42->glyf_blocks = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/wineps.drv/type42.c:312: t42->glyph_sent = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/winex11.drv/palette.c:1107: mapping = HeapReAlloc( GetProcessHeap(), 0, prev_mapping, sizeof(int)*num_entries); ./dlls/winex11.drv/wintab.c:522: cursor->BTNNAMES = HeapReAlloc(GetProcessHeap(), 0, cursor->BTNNAMES, sizeof(WCHAR)*cchBuf); ./dlls/winex11.drv/wintab.c:529: cursor->BTNNAMES = HeapReAlloc(GetProcessHeap(), 0, cursor->BTNNAMES, sizeof(WCHAR)*cchPos); ./dlls/winex11.drv/xdnd.c:400: out = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, out, capacity + 1); ./dlls/winex11.drv/xfont.c:1850: !(buffer = HeapReAlloc( GetProcessHeap(), 0, buffer, *buf_size = len ))) ./dlls/winex11.drv/xfont.c:2812: if( (newCache = HeapReAlloc(GetProcessHeap(), 0, fontCache, prev_i * sizeof(fontObject))) ) ./dlls/winex11.drv/xim.c:175: HeapReAlloc(GetProcessHeap(), 0, ./dlls/winex11.drv/xrender.c:391: glyphsetCache = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/winex11.drv/xrender.c:657: formatEntry->realized = HeapReAlloc(GetProcessHeap(), ./dlls/winex11.drv/xrender.c:668: formatEntry->bitmaps = HeapReAlloc(GetProcessHeap(), ./dlls/winex11.drv/xrender.c:678: formatEntry->gis = HeapReAlloc(GetProcessHeap(), ./dlls/wininet/ftp.c:3444: tmpafp = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, *lpafp, ./dlls/wininet/ftp.c:3463: tmpafp = HeapReAlloc(GetProcessHeap(), 0, *lpafp, ./dlls/wininet/http.c:3043: lpszRawHeaders = HeapReAlloc(GetProcessHeap(), 0, lpszRawHeaders, (cchMaxRawHeaders+1)*sizeof(WCHAR)); ./dlls/wininet/http.c:3089: lpszRawHeaders = HeapReAlloc(GetProcessHeap(), 0, lpszRawHeaders, (cchMaxRawHeaders+1)*sizeof(WCHAR)); ./dlls/wininet/http.c:3301: lpsztmp = HeapReAlloc(GetProcessHeap(), 0, lphttpHdr->lpszValue, (len+1)*sizeof(WCHAR)); ./dlls/wininet/http.c:3511: lph = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, lpwhr->pCustHeaders, sizeof(HTTPHEADERW) * count); ./dlls/wininet/internet.c:124: p = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, ./dlls/winmm/lolvldrv.c:539: HeapReAlloc(GetProcessHeap(), 0, llTypes[type].lpMlds - 1, ./dlls/winmm/mmsystem.c:2653: ptr32 = HeapReAlloc(GetProcessHeap(), 0, ptr32, size); ./dlls/winspool.drv/info.c:1433: new_array = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, printer_handles, ./dlls/winspool.drv/info.c:5279: bufferW = (bufferW) ? HeapReAlloc(GetProcessHeap(), 0, bufferW, needed) : ./dlls/winspool.drv/info.c:7049: bufferW = (bufferW) ? HeapReAlloc(GetProcessHeap(), 0, bufferW, needed) : ./dlls/winspool.drv/info.c:769: pent=HeapReAlloc(GetProcessHeap(),0,pent,strlen(pent)+strlen(start)+1); ./dlls/winspool.drv/tests/info.c:1385: buffer = HeapReAlloc(GetProcessHeap(), 0, buffer, cbBuf*2); ./dlls/winspool.drv/tests/info.c:1404: buffer = HeapReAlloc(GetProcessHeap(), 0, buffer, cbBuf*2); ./dlls/wintab32/context.c:997: context->PacketQueue = HeapReAlloc(GetProcessHeap(), 0, ./dlls/wintrust/wintrust_main.c:531:void * WINAPI WINTRUST_ReAlloc(void *ptr, DWORD cb) ./dlls/wintrust/wintrust_main.c:533: return HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, ptr, cb); ./dlls/wintrust/wintrust_main.c:546: data->pahStores = WINTRUST_ReAlloc(data->pahStores, ./dlls/wintrust/wintrust_main.c:580: data->pasSigners = WINTRUST_ReAlloc(data->pasSigners, ./dlls/wintrust/wintrust_main.c:627: WINTRUST_ReAlloc(data->pasSigners[idxSigner].pasCertChain, ./dlls/ws2_32/async.c:428: extrabuf=HeapReAlloc(GetProcessHeap(),0,extrabuf,ebufsize) ; ./dlls/ws2_32/socket.c:3164: extrabuf=HeapReAlloc(GetProcessHeap(),0,extrabuf,ebufsize) ; ./dlls/ws2_32/socket.c:3210: extrabuf=HeapReAlloc(GetProcessHeap(),0,extrabuf,ebufsize) ; ./dlls/ws2_32/socket.c:3451: ai->ai_addr = HeapReAlloc(GetProcessHeap(),0,ai->ai_addr,len); ./include/msvcrt/crtdbg.h:121:#define _realloc_dbg(p,s,t,f,l) realloc(p,s) ./include/windowsx.h:121:#define GlobalReAllocPtr(lp, cbNew, flags) (GlobalUnlockPtr(lp), GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) , (cbNew), (flags)))) ./libs/wine/debug.c:255: if ((ret = realloc( list[idx], size ))) list[idx] = ret; ./libs/wine/ldt.c:334:unsigned short wine_ldt_realloc_entries( unsigned short sel, int oldcount, int newcount ) ./libs/wpp/ppl.l:1132: strbuffer = pp_xrealloc(strbuffer, strbuf_alloc * sizeof(strbuffer[0])); ./libs/wpp/ppl.l:1329: mep->curarg = pp_xrealloc(mep->curarg, mep->curargalloc * sizeof(mep->curarg[0])); ./libs/wpp/ppl.l:1344: mep->args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); ./libs/wpp/ppl.l:1345: mep->ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); ./libs/wpp/ppl.l:1346: mep->nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); ./libs/wpp/ppl.l:876: buf = pp_xrealloc(buf, 32); ./libs/wpp/ppl.l:882: buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); ./libs/wpp/ppl.l:932: curdef_text = pp_xrealloc(curdef_text, curdef_alloc * sizeof(curdef_text[0])); ./libs/wpp/ppl.yy.c:2785: ppy_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ./libs/wpp/ppl.yy.c:310:void *ppy_realloc (void *,yy_size_t ); ./libs/wpp/ppl.yy.c:3202: * immediate realloc on the next call. ./libs/wpp/ppl.yy.c:3222: (yy_buffer_stack) = (struct yy_buffer_state**)ppy_realloc ./libs/wpp/ppl.yy.c:3332: (yy_start_stack) = (int *) ppy_realloc((void *) (yy_start_stack),new_size ); ./libs/wpp/ppl.yy.c:3551:void *ppy_realloc (void * ptr, yy_size_t size ) ./libs/wpp/ppl.yy.c:3560: return (void *) realloc( (char *) ptr, size ); ./libs/wpp/ppl.yy.c:3565: free( (char *) ptr ); /* see ppy_realloc() for (char *) cast */ ./libs/wpp/ppl.yy.c:3731: buf = pp_xrealloc(buf, 32); ./libs/wpp/ppl.yy.c:3737: buf = pp_xrealloc(buf, strlen(pp_status.input) + 3); ./libs/wpp/ppl.yy.c:3787: curdef_text = pp_xrealloc(curdef_text, curdef_alloc * sizeof(curdef_text[0])); ./libs/wpp/ppl.yy.c:3987: strbuffer = pp_xrealloc(strbuffer, strbuf_alloc * sizeof(strbuffer[0])); ./libs/wpp/ppl.yy.c:4184: mep->curarg = pp_xrealloc(mep->curarg, mep->curargalloc * sizeof(mep->curarg[0])); ./libs/wpp/ppl.yy.c:4199: mep->args = pp_xrealloc(mep->args, (mep->nargs+1) * sizeof(mep->args[0])); ./libs/wpp/ppl.yy.c:4200: mep->ppargs = pp_xrealloc(mep->ppargs, (mep->nargs+1) * sizeof(mep->ppargs[0])); ./libs/wpp/ppl.yy.c:4201: mep->nnls = pp_xrealloc(mep->nnls, (mep->nargs+1) * sizeof(mep->nnls[0])); ./libs/wpp/ppy.tab.c:2552: macro_args = pp_xrealloc(macro_args, nmacro_args * sizeof(macro_args[0])); ./libs/wpp/ppy.tab.c:2590: tail->subst.text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); ./libs/wpp/ppy.tab.c:2656: s1 = pp_xrealloc(s1, l1+l2+1); ./libs/wpp/ppy.y:550: macro_args = pp_xrealloc(macro_args, nmacro_args * sizeof(macro_args[0])); ./libs/wpp/ppy.y:588: tail->subst.text = pp_xrealloc(tail->subst.text, strlen(tail->subst.text)+strlen(mtp->subst.text)+1); ./libs/wpp/ppy.y:654: s1 = pp_xrealloc(s1, l1+l2+1); ./libs/wpp/preproc.c:350: includepath = pp_xrealloc(includepath, nincludepath * sizeof(*includepath)); ./libs/wpp/preproc.c:90:void *pp_xrealloc(void *p, size_t size) ./libs/wpp/preproc.c:95: res = realloc(p, size); ./programs/cmd/directory.c:513: fd = HeapReAlloc(GetProcessHeap(),0,fd,(entry_count+1)*sizeof(WIN32_FIND_DATA)); ./programs/oleview/typelib.c:200: pTLData->idl = HeapReAlloc(GetProcessHeap(), 0, pTLData->idl, ./programs/oleview/typelib.c:222: pTLData->idl = HeapReAlloc(GetProcessHeap(), 0, pTLData->idl, ./programs/progman/grpfile.c:125: hNewBuffer = LocalReAlloc(hBuffer, size + MALLOCHUNK + 1, ./programs/regedit/edit.c:138: if ((valueData = HeapReAlloc(GetProcessHeap(), 0, stringValueData, (len + 1) * sizeof(TCHAR)))) { ./programs/regedit/hexedit.c:295: infoPtr->pData = HeapReAlloc(GetProcessHeap(), 0, infoPtr->pData, infoPtr->cbData + 1); ./programs/regedit/listview.c:71: newStr = HeapReAlloc(GetProcessHeap(), 0, curStr, maxLen * 2); ./programs/regedit/regproc.c:513: new_buffer = HeapReAlloc (GetProcessHeap(), 0, line, new_size); ./programs/regedit/regproc.c:630: *buffer = HeapReAlloc(GetProcessHeap(), 0, *buffer, *len * sizeof(**buffer)); ./programs/regedit/regproc.c:707: else *val_buf = HeapReAlloc(GetProcessHeap(), 0, *val_buf, *val_size); ./programs/regedit/treeview.c:85: newStr = HeapReAlloc(GetProcessHeap(), 0, *pKeyPath, *pMaxLen * 2); ./programs/uninstaller/main.c:211: entries = HeapReAlloc(GetProcessHeap(), 0, entries, numentries*sizeof(uninst_entry)); ./programs/wineboot/shutdown.c:54: struct window_info *new_win = HeapReAlloc( GetProcessHeap(), 0, windows, ./programs/winecfg/audio.c:527: loadedAudioDrv = HeapReAlloc(GetProcessHeap(), 0, loadedAudioDrv, (numFound + 1) * sizeof(AUDIO_DRIVER)); ./programs/winecfg/audio.c:542: loadedAudioDrv = HeapReAlloc(GetProcessHeap(), 0, loadedAudioDrv, (numFound + 1) * sizeof(AUDIO_DRIVER)); ./programs/winecfg/winecfg.c:517: if (values) values = HeapReAlloc(GetProcessHeap(), 0, values, sizeof(WCHAR*) * (valueslen + 1)); ./programs/winecfg/winecfg.c:557: if (values) values = HeapReAlloc(GetProcessHeap(), 0, values, sizeof(WCHAR*) * (valueslen + 1)); ./programs/winecfg/winecfg.c:566: values = HeapReAlloc(GetProcessHeap(), 0, values, sizeof(WCHAR*) * (valueslen + 1)); ./programs/wineconsole/curses.c:250: PRIVATE(data)->line = HeapReAlloc(GetProcessHeap(), 0, PRIVATE(data)->line, ./programs/wineconsole/dialog.c:400: di->font = HeapReAlloc(GetProcessHeap(), 0, di->font, sizeof(*di->font) * (di->nFont + 1)); ./programs/wineconsole/wineconsole.c:322: data->cells = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, data->cells, ./programs/winedbg/break.c:221: dbg_heap_realloc(dbg_curr_process->delayed_bp, ./programs/winedbg/break.c:261: dbg_curr_process->delayed_bp = dbg_heap_realloc(dbg_curr_process->delayed_bp, ./programs/winedbg/dbg.tab.c:3318: *line = dbg_heap_realloc(*line, alloc); ./programs/winedbg/dbg.y:480: *line = dbg_heap_realloc(*line, alloc); ./programs/winedbg/debugger.h:459:static inline void* dbg_heap_realloc(void* buffer, size_t size) ./programs/winedbg/debugger.h:461: return (buffer) ? HeapReAlloc(GetProcessHeap(), 0, buffer, size) : ./programs/winedbg/debug.l:242: local_lexemes = dbg_heap_realloc(local_lexemes, alloc_lexeme * sizeof(local_lexemes[0])); ./programs/winedbg/debug.yy.c:1908: dbg_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ./programs/winedbg/debug.yy.c:2346: (yy_buffer_stack) = (struct yy_buffer_state**)dbg_realloc ./programs/winedbg/debug.yy.c:2629:void *dbg_realloc (void * ptr, yy_size_t size ) ./programs/winedbg/debug.yy.c:2638: return (void *) realloc( (char *) ptr, size ); ./programs/winedbg/debug.yy.c:2643: free( (char *) ptr ); /* see dbg_realloc() for (char *) cast */ ./programs/winedbg/debug.yy.c:2666: local_lexemes = dbg_heap_realloc(local_lexemes, alloc_lexeme * sizeof(local_lexemes[0])); ./programs/winedbg/debug.yy.c:310:void *dbg_realloc (void *,yy_size_t ); ./programs/winedbg/display.c:210: displaypoints = dbg_heap_realloc(displaypoints, ./programs/winedbg/display.c:227: displaypoints = dbg_heap_realloc(displaypoints, ./programs/winedbg/display.c:70: displaypoints = dbg_heap_realloc(displaypoints, ./programs/winedbg/gdbproxy.c:2065: gdbctx->in_buf = realloc(gdbctx->in_buf, gdbctx->in_buf_alloc += STEP); ./programs/winedbg/gdbproxy.c:821: gdbctx->out_buf = realloc(gdbctx->out_buf, gdbctx->out_buf_alloc); ./programs/winedbg/info.c:186: im->mi = dbg_heap_realloc(im->mi, im->num_alloc * sizeof(*im->mi)); ./programs/winedbg/info.c:298: cw->table = dbg_heap_realloc(cw->table, cw->alloc * sizeof(ATOM)); ./programs/winedbg/source.c:74: new = HeapReAlloc(GetProcessHeap(), 0, search_path, pos + size); ./programs/winedbg/stack.c:193: dbg_curr_thread->frames = dbg_heap_realloc(dbg_curr_thread->frames, ./programs/winedbg/tgt_active.c:861: if (!(cmd_line = HeapReAlloc(GetProcessHeap(), 0, cmd_line, len))) ./programs/winetest/main.c:239: rev_infos = xrealloc (rev_infos, size * sizeof (*rev_infos)); ./programs/winetest/main.c:286: test->name = xrealloc (test->name, exepos - test->name + 1); ./programs/winetest/main.c:426: test->subtests = xrealloc (test->subtests, ./programs/winetest/main.c:432: test->subtests = xrealloc (test->subtests, ./programs/winetest/util.c:35:void *xrealloc (void *op, size_t len) ./programs/winetest/util.c:37: void *p = realloc (op, len); ./programs/winetest/util.c:63: q = realloc (p, size); ./programs/winhelp/hlpfile.c:1479: hlpfile->windows = HeapReAlloc(GetProcessHeap(), 0, hlpfile->windows, ./programs/winhelp/hlpfile.c:676: bi = HeapReAlloc(GetProcessHeap(), 0, bi, sizeof(*bi) + nc * sizeof(RGBQUAD)); ./programs/winhelp/hlpfile.c:834: hlpfile->bmps = HeapReAlloc(GetProcessHeap(), 0, hlpfile->bmps, ./programs/winhelp/macro.c:844: else MACRO_Loaded = HeapReAlloc(GetProcessHeap(), 0, MACRO_Loaded, size); ./programs/winhelp/macro.lex.yy.c:1049: yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ./programs/winhelp/macro.lex.yy.c:1487: (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ./programs/winhelp/macro.lex.yy.c:1770:void *yyrealloc (void * ptr, yy_size_t size ) ./programs/winhelp/macro.lex.yy.c:1779: return (void *) realloc( (char *) ptr, size ); ./programs/winhelp/macro.lex.yy.c:1784: free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ ./programs/winhelp/macro.lex.yy.c:310:void *yyrealloc (void *,yy_size_t ); ./server/atom.c:146: new_table = realloc( table->handles, sizeof(*table->handles) * new_size ); ./server/change.c:675: p = realloc( *path, len + extra ); ./server/console.c:240: evts->events = realloc( evts->events, evts->num_alloc * sizeof(*evt) ); ./server/console.c:561: if (!(new_rec = realloc( console->records, ./server/console.c:626: INPUT_RECORD *new_rec = realloc( console->records, ./server/fd.c:686: if (!(newusers = realloc( poll_users, new_count * sizeof(*poll_users) ))) return -1; ./server/fd.c:687: if (!(newpoll = realloc( pollfd, new_count * sizeof(*pollfd) ))) ./server/handle.c:198: if (!(new_entries = realloc( table->entries, count * sizeof(struct handle_entry) ))) ./server/handle.c:318: if (!(new_entries = realloc( table->entries, count * sizeof(*new_entries) ))) return; ./server/process.c:172: if (!(entry = realloc( ptid_entries, count * sizeof(*entry) ))) ./server/region.c:113: rectangle_t *new_rect = realloc( reg->rects, 2 * sizeof(rectangle_t) * reg->size ); ./server/region.c:327: if ((new_rects = realloc( newReg->rects, sizeof(*newReg->rects) * new_size ))) ./server/region.c:721: rectangle_t *rect = realloc( dst->rects, src->num_rects * sizeof(*rect) ); ./server/registry.c:1003: if (!(new_val = realloc( key->values, nb_values * sizeof(*new_val) ))) return; ./server/registry.c:1045: if (!(newbuf = realloc( info->buffer, newlen ))) ./server/registry.c:1060: if (!(tmp = realloc( info->tmp, size ))) ./server/registry.c:486: if (!(new_subkeys = realloc( key->subkeys, nb_subkeys * sizeof(*new_subkeys) ))) ./server/registry.c:552: if (!(new_subkeys = realloc( parent->subkeys, nb_subkeys * sizeof(*new_subkeys) ))) return; ./server/registry.c:801: if (!(new_val = realloc( key->values, nb_values * sizeof(*new_val) ))) ./server/user.c:71: if (!(new_handles = realloc( handles, new_size * sizeof(*handles) ))) ./server/window.c:246: user_handle_t *new_array = realloc( array->handles, new_total * sizeof(*new_array) ); ./server/window.c:290: if (!(new_props = realloc( win->properties, ./tools/fnt2bdf.c:596: if( !(lpfont = (unsigned char*) realloc( lpfont, length )) ) ./tools/makedep.c:111:static void *xrealloc (void *ptr, size_t size) ./tools/makedep.c:115: if (!(res = realloc( ptr, size ))) ./tools/makedep.c:198: buffer = xrealloc( buffer, size * 2 ); ./tools/widl/parser.l:353: cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); ./tools/widl/parser.yy.c:1269: parser_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ./tools/widl/parser.yy.c:1686: * immediate realloc on the next call. ./tools/widl/parser.yy.c:1706: (yy_buffer_stack) = (struct yy_buffer_state**)parser_realloc ./tools/widl/parser.yy.c:1816: (yy_start_stack) = (int *) parser_realloc((void *) (yy_start_stack),new_size ); ./tools/widl/parser.yy.c:2030:void *parser_realloc (void * ptr, yy_size_t size ) ./tools/widl/parser.yy.c:2039: return (void *) realloc( (char *) ptr, size ); ./tools/widl/parser.yy.c:2044: free( (char *) ptr ); /* see parser_realloc() for (char *) cast */ ./tools/widl/parser.yy.c:211: * and can realloc() it to grow it, and should free() it to ./tools/widl/parser.yy.c:2232: cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); ./tools/widl/parser.yy.c:310:void *parser_realloc (void *,yy_size_t ); ./tools/widl/utils.c:174: line = xrealloc(line, len); ./tools/widl/utils.c:198:void *xrealloc(void *p, size_t size) ./tools/widl/utils.c:203: res = realloc(p, size); ./tools/widl/write_msft.c:1395: typeinfo->func_data = xrealloc(typeinfo->func_data, typeinfo->func_data_allocated); ./tools/widl/write_msft.c:1524: typeinfo->func_indices = xrealloc(typeinfo->func_indices, typeinfo->funcs_allocated * sizeof(int)); ./tools/widl/write_msft.c:1525: typeinfo->func_names = xrealloc(typeinfo->func_names, typeinfo->funcs_allocated * sizeof(int)); ./tools/widl/write_msft.c:1526: typeinfo->func_offsets = xrealloc(typeinfo->func_offsets, typeinfo->funcs_allocated * sizeof(int)); ./tools/widl/write_msft.c:1634: typeinfo->var_data = xrealloc(typeinfo->var_data, typeinfo->var_data_allocated); ./tools/widl/write_msft.c:1654: typeinfo->var_indices = xrealloc(typeinfo->var_indices, typeinfo->vars_allocated * sizeof(int)); ./tools/widl/write_msft.c:1655: typeinfo->var_names = xrealloc(typeinfo->var_names, typeinfo->vars_allocated * sizeof(int)); ./tools/widl/write_msft.c:1656: typeinfo->var_offsets = xrealloc(typeinfo->var_offsets, typeinfo->vars_allocated * sizeof(int)); ./tools/widl/write_msft.c:391: block = xrealloc(typelib->typelib_segment_data[segment], block_size << 1); ./tools/winapi/nativeapi.dat:171:realloc ./tools/winebuild/import.c:106: table->names = xrealloc( table->names, table->size * sizeof(*table->names) ); ./tools/winebuild/import.c:309: dll_imports = xrealloc( dll_imports, (nb_imports+1) * sizeof(*dll_imports) ); ./tools/winebuild/import.c:371: imp->imports = xrealloc( imp->imports, (imp->nb_imports+1) * sizeof(*imp->imports) ); ./tools/winebuild/main.c:385: lib_path = xrealloc( lib_path, (nb_lib_paths+1) * sizeof(*lib_path) ); ./tools/winebuild/main.c:448: res_files = xrealloc( res_files, (nb_res_files+1) * sizeof(*res_files) ); ./tools/winebuild/parser.c:153: spec->entry_points = xrealloc( spec->entry_points, ./tools/winebuild/parser.c:203: value_array = xrealloc(value_array, ./tools/winebuild/parser.c:216: odp->u.var.values = xrealloc(value_array, sizeof(*value_array) * n_values); ./tools/winebuild/res16.c:84: spec->resources = xrealloc( spec->resources, (spec->nb_resources + 1) * sizeof(*spec->resources) ); ./tools/winebuild/res16.c:91: tree->types = xrealloc( tree->types, (tree->nb_types + 1) * sizeof(*tree->types) ); ./tools/winebuild/res32.c:118: type->names = xrealloc( type->names, (type->nb_names + 1) * sizeof(*type->names) ); ./tools/winebuild/res32.c:130: tree->types = xrealloc( tree->types, (tree->nb_types + 1) * sizeof(*tree->types) ); ./tools/winebuild/res32.c:98: spec->resources = xrealloc( spec->resources, (spec->nb_resources + 1) * sizeof(spec->resources[0]) ); ./tools/winebuild/utils.c:63:void *xrealloc (void *ptr, size_t size) ./tools/winebuild/utils.c:65: void *res = realloc (ptr, size); ./tools/winedump/debug.c:709: stabbuff = realloc(stabbuff, stabbufflen); ./tools/winegcc/utils.c:115: arr->base = xrealloc(arr->base, sizeof(*(arr->base)) * arr->maximum); ./tools/winegcc/utils.c:60:void *xrealloc(void* p, size_t size) ./tools/winegcc/utils.c:62: void* p2 = realloc (p, size); ./tools/wmc/mcl.c:342: ungetstack = xrealloc(ungetstack, allocungetstack * sizeof(*ungetstack)); ./tools/wmc/mcl.c:367: charstack = xrealloc(charstack, alloccharstack * sizeof(*charstack)); ./tools/wmc/mcl.c:403: unicharstack = xrealloc(unicharstack, allocunicharstack * sizeof(*unicharstack)); ./tools/wmc/mcl.c:567: tokentable = xrealloc(tokentable, ntokentable * sizeof(*tokentable)); ./tools/wmc/mcy.tab.c:2328: s1 = xrealloc(s1, (l1 + l2 + 1) * sizeof(*s1)); ./tools/wmc/mcy.tab.c:2375: msg->msgs = xrealloc(msg->msgs, (msg->nmsgs+1) * sizeof(*(msg->msgs))); ./tools/wmc/mcy.tab.c:2515: msgtab = xrealloc(msgtab, (nmsg+1) * sizeof(*msgtab)); ./tools/wmc/mcy.tab.c:2554: blk->msgs = xrealloc(blk->msgs, (blk->nmsg+1) * sizeof(*blk->msgs)); ./tools/wmc/mcy.tab.c:2560: lbp->blks = xrealloc(lbp->blks, lbp->nblk * sizeof(*lbp->blks)); ./tools/wmc/mcy.tab.c:2582: cpxlattab = xrealloc(cpxlattab, (ncpxlattab+1) * sizeof(*cpxlattab)); ./tools/wmc/mcy.y:410: s1 = xrealloc(s1, (l1 + l2 + 1) * sizeof(*s1)); ./tools/wmc/mcy.y:457: msg->msgs = xrealloc(msg->msgs, (msg->nmsgs+1) * sizeof(*(msg->msgs))); ./tools/wmc/mcy.y:597: msgtab = xrealloc(msgtab, (nmsg+1) * sizeof(*msgtab)); ./tools/wmc/mcy.y:636: blk->msgs = xrealloc(blk->msgs, (blk->nmsg+1) * sizeof(*blk->msgs)); ./tools/wmc/mcy.y:642: lbp->blks = xrealloc(lbp->blks, lbp->nblk * sizeof(*lbp->blks)); ./tools/wmc/mcy.y:664: cpxlattab = xrealloc(cpxlattab, (ncpxlattab+1) * sizeof(*cpxlattab)); ./tools/wmc/utils.c:158: res = realloc(p, size); ./tools/wrc/genres.c:62: r->data = xrealloc(r->data, r->allocsize); ./tools/wrc/newstruc.c:1132: dst->data = xrealloc(dst->data, dst->size + len); ./tools/wrc/newstruc.c:427: *list = xrealloc(*list, sizeof(id_alloc_t) * (*n+1)); ./tools/wrc/newstruc.c:979: w->words = xrealloc(w->words, (w->nwords+1) * sizeof(WORD)); ./tools/wrc/parser.l:576: cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); ./tools/wrc/parser.l:588: wbuffer = xrealloc(wbuffer, wbufalloc * sizeof(wbuffer[0])); ./tools/wrc/parser.tab.c:3925: tagstt->entries = xrealloc(tagstt->entries, sizeof(tagstt->entries[0]) * tagstt->nentries); ./tools/wrc/parser.tab.c:5289: r1->data = xrealloc(r1->data, r1->size + r2->size); ./tools/wrc/parser.tab.c:5649: fnt = xrealloc(fnt, nfnt * sizeof(*fnt)); ./tools/wrc/parser.tab.c:5655: fnd = xrealloc(fnd, nfnd * sizeof(*fnd)); ./tools/wrc/parser.y:1494: tagstt->entries = xrealloc(tagstt->entries, sizeof(tagstt->entries[0]) * tagstt->nentries); ./tools/wrc/parser.y:2431: r1->data = xrealloc(r1->data, r1->size + r2->size); ./tools/wrc/parser.y:2791: fnt = xrealloc(fnt, nfnt * sizeof(*fnt)); ./tools/wrc/parser.y:2797: fnd = xrealloc(fnd, nfnd * sizeof(*fnd)); ./tools/wrc/parser.yy.c:1998: parser_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ./tools/wrc/parser.yy.c:2435: (yy_buffer_stack) = (struct yy_buffer_state**)parser_realloc ./tools/wrc/parser.yy.c:2545: (yy_start_stack) = (int *) parser_realloc((void *) (yy_start_stack),new_size ); ./tools/wrc/parser.yy.c:2759:void *parser_realloc (void * ptr, yy_size_t size ) ./tools/wrc/parser.yy.c:2768: return (void *) realloc( (char *) ptr, size ); ./tools/wrc/parser.yy.c:2773: free( (char *) ptr ); /* see parser_realloc() for (char *) cast */ ./tools/wrc/parser.yy.c:2790: cbuffer = xrealloc(cbuffer, cbufalloc * sizeof(cbuffer[0])); ./tools/wrc/parser.yy.c:2802: wbuffer = xrealloc(wbuffer, wbufalloc * sizeof(wbuffer[0])); ./tools/wrc/parser.yy.c:310:void *parser_realloc (void *,yy_size_t ); ./tools/wrc/utils.c:170:void *xrealloc(void *p, size_t size) ./tools/wrc/utils.c:175: res = realloc(p, size);
On Saturday 22 December 2007 11:30:05 Lionel_Debroux wrote:
./dlls/secur32/dispatcher.c:152
This one is safe, as buf is only assigned to helper->com_buf on success of the call. helper->com_buf is free()d when the user correctly shuts down the security context.
Cheers, Kai
Hi Lionel,
It's very unlikely that *realloc fails, but if it does, this leaks some memory (or may fault, if the code is not protected against *realloc returning NULL).
Note that it's debatable what the best course of action here is. It's true that in case of failure, the original pointer should be freed. But a fault might be acceptable too - if we're out of memory, what can we possibly do to recover? At least that's one line of reasoning.
That prompted me to make a case-insensitive search of "realloc" in the whole Wine tree. Such a simple search was bound to turn a significant amount of noise (comments, TRACE/WARN, even correct uses of realloc, etc.), but it would also reveal other (probably) incorrect uses of realloc-type functions.
The results you sent aren't very useful without more investigation. This might be a useful janitorial project, and might be better tracked on the wiki than on this list. --Juan
Hi Juan,
The results you sent aren't very useful without more investigation.
Indeed. I have started doing that on msi (which is the first place where I spotted such a construct, but as the list shows, it's far from being the only one), and sent a patch this morning. However, I have neither the time, nor the knowledge of the Win32 API, to correctly fix all cases :)
This might be a useful janitorial project, and might be better tracked on the wiki than on this list.
Agreed. Last week, between other things, I asked Michael Stefaniuc exactly that. But he didn't reply yet, I know he's busy (or either mail was silently eaten by a spam filter...).
Lionel.