From a548d5a29fac36a556bc8d676a180bef8a2a942a Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Thu, 7 May 2009 09:28:24 -0700 Subject: [PATCH] inetmib1: Check return values from SnmpUtilOid functions in utility functions. --- dlls/inetmib1/main.c | 52 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/dlls/inetmib1/main.c b/dlls/inetmib1/main.c index 3b39174bf61..4fdd1dff3ca 100644 --- a/dlls/inetmib1/main.c +++ b/dlls/inetmib1/main.c @@ -431,45 +431,61 @@ static AsnInteger32 getItemAndInstanceFromTable(AsnObjectIdentifier *oid, return ret; } -static void setOidWithItem(AsnObjectIdentifier *dst, AsnObjectIdentifier *base, +static INT setOidWithItem(AsnObjectIdentifier *dst, AsnObjectIdentifier *base, UINT item) { UINT id; AsnObjectIdentifier oid; + INT ret; - SnmpUtilOidCpy(dst, base); - oid.idLength = 1; - oid.ids = &id; - id = item; - SnmpUtilOidAppend(dst, &oid); + ret = SnmpUtilOidCpy(dst, base); + if (ret) + { + oid.idLength = 1; + oid.ids = &id; + id = item; + ret = SnmpUtilOidAppend(dst, &oid); + } + return ret; } -static void setOidWithItemAndIpAddr(AsnObjectIdentifier *dst, +static INT setOidWithItemAndIpAddr(AsnObjectIdentifier *dst, AsnObjectIdentifier *base, UINT item, DWORD addr) { UINT id; BYTE *ptr; AsnObjectIdentifier oid; + INT ret; - setOidWithItem(dst, base, item); - oid.idLength = 1; - oid.ids = &id; - for (ptr = (BYTE *)&addr; ptr < (BYTE *)&addr + sizeof(DWORD); ptr++) + ret = setOidWithItem(dst, base, item); + if (ret) { - id = *ptr; - SnmpUtilOidAppend(dst, &oid); + oid.idLength = 1; + oid.ids = &id; + for (ptr = (BYTE *)&addr; ret && ptr < (BYTE *)&addr + sizeof(DWORD); + ptr++) + { + id = *ptr; + ret = SnmpUtilOidAppend(dst, &oid); + } } + return ret; } -static void setOidWithItemAndInteger(AsnObjectIdentifier *dst, +static INT setOidWithItemAndInteger(AsnObjectIdentifier *dst, AsnObjectIdentifier *base, UINT item, UINT instance) { AsnObjectIdentifier oid; + INT ret; - setOidWithItem(dst, base, item); - oid.idLength = 1; - oid.ids = &instance; - SnmpUtilOidAppend(dst, &oid); + ret = setOidWithItem(dst, base, item); + if (ret) + { + oid.idLength = 1; + oid.ids = &instance; + ret = SnmpUtilOidAppend(dst, &oid); + } + return ret; } static struct structToAsnValue mib2IfEntryMap[] = { -- 2.11.4.GIT