Hans Leidekker wrote:
+/***********************************************************************
SnmpUtilVarBindListCpy (SNMPAPI.@)
- */
+INT WINAPI SnmpUtilVarBindListCpy(SnmpVarBindList *dst, SnmpVarBindList *src) +{
- unsigned int i, size;
- SnmpVarBind *src_entry, *dst_entry;
- TRACE("(%p, %p)\n", dst, src);
- size = sizeof(SnmpVarBindList);
- if (!(dst = HeapAlloc(GetProcessHeap(), 0, size))) return SNMPAPI_ERROR;
Where do you return this memory to the caller?
- size = src->len * sizeof(SnmpVarBind *);
- if (!(dst->list = HeapAlloc(GetProcessHeap(), 0, size)))
- {
HeapFree(GetProcessHeap(), 0, dst);
return SNMPAPI_ERROR;
- }
- src_entry = src->list;
- dst_entry = dst->list;
- for (i = 0; i < src->len; i++)
- {
if (SnmpUtilVarBindCpy(dst_entry, src_entry))
{
src_entry++;
dst_entry++;
}
else
{
for (--i; i > 0; i--) SnmpUtilVarBindFree(--dst_entry);
HeapFree(GetProcessHeap(), 0, dst->list);
HeapFree(GetProcessHeap(), 0, dst);
return SNMPAPI_ERROR;
}
- }
- dst->len = src->len;
- return SNMPAPI_NOERROR;
+}