diff --git a/source/SnmpPlugin/ccsp_mib_definitions.h b/source/SnmpPlugin/ccsp_mib_definitions.h index f54ccf2..fe42a81 100644 --- a/source/SnmpPlugin/ccsp_mib_definitions.h +++ b/source/SnmpPlugin/ccsp_mib_definitions.h @@ -82,6 +82,7 @@ #define MAXI_DM_NAME_LENGTH 256 #define MAXI_CCSP_MAP_STRING_LEN 32 #define MAXI_MIB_DATA_TYPE_LEN 32 +#define CCSP_MIB_IPV4_ADDRESS_SIZE 4 /* TR69 data type definition */ diff --git a/source/SnmpPlugin/ccsp_mib_utilities.c b/source/SnmpPlugin/ccsp_mib_utilities.c index 50e8391..7f71443 100644 --- a/source/SnmpPlugin/ccsp_mib_utilities.c +++ b/source/SnmpPlugin/ccsp_mib_utilities.c @@ -1734,7 +1734,11 @@ CcspUtilInitMibValueArray pMibValue->uSize = 6; } - else if( pMibValue->uType >= ASN_IPADDRESS && pMibValue->uType <= ASN_OPAQUE) + else if( pMibValue->uType == ASN_IPADDRESS) + { + pMibValue->uSize = CCSP_MIB_IPV4_ADDRESS_SIZE; + } + else if( pMibValue->uType > ASN_IPADDRESS && pMibValue->uType <= ASN_OPAQUE) { pMibValue->uSize = sizeof(ULONG); } diff --git a/source/SnmpPlugin/ccsp_scalar_helper_access.c b/source/SnmpPlugin/ccsp_scalar_helper_access.c index a57f878..cbcb3de 100644 --- a/source/SnmpPlugin/ccsp_scalar_helper_access.c +++ b/source/SnmpPlugin/ccsp_scalar_helper_access.c @@ -205,7 +205,11 @@ verifyTypeAndValueInSetReserved1 { ret = netsnmp_check_vb_size(pVb, sizeof(BOOLEAN)); } - else if( nType == ASN_INTEGER || (nType >= ASN_IPADDRESS && nType <= ASN_OPAQUE)) + else if( nType == ASN_IPADDRESS) + { + ret = netsnmp_check_vb_size(pVb, CCSP_MIB_IPV4_ADDRESS_SIZE); + } + else if( nType == ASN_INTEGER || (nType > ASN_IPADDRESS && nType <= ASN_OPAQUE)) { ret = netsnmp_check_vb_size(pVb, sizeof(ULONG)); } diff --git a/source/SnmpPlugin/ccsp_table_helper_access.c b/source/SnmpPlugin/ccsp_table_helper_access.c index e41aa31..53087af 100755 --- a/source/SnmpPlugin/ccsp_table_helper_access.c +++ b/source/SnmpPlugin/ccsp_table_helper_access.c @@ -213,7 +213,11 @@ verifyTypeAndValueInSetReserved1 { ret = netsnmp_check_vb_size(pVb, sizeof(BOOLEAN)); } - else if( nType == ASN_INTEGER || (nType >= ASN_IPADDRESS && nType <= ASN_OPAQUE)) + else if( nType == ASN_IPADDRESS) + { + ret = netsnmp_check_vb_size(pVb, CCSP_MIB_IPV4_ADDRESS_SIZE); + } + else if( nType == ASN_INTEGER || (nType > ASN_IPADDRESS && nType <= ASN_OPAQUE)) { ret = netsnmp_check_vb_size(pVb, sizeof(ULONG)); }