From 4545afe61693fde381c7c15e7bf821c0438bf3ad Mon Sep 17 00:00:00 2001 From: Sriraaman C Date: Tue, 13 Oct 2026 16:40:25 +0530 Subject: [PATCH] RDKB-64398: Fix for SNMP IPAddress set failure Reason for change: sizeof(ULONG) is 8 bytes in 64-bit system because of which the IP set is getting failed expecting 4 bytes as length. Risks: Low Priority: P1 --- source/SnmpPlugin/ccsp_mib_definitions.h | 1 + source/SnmpPlugin/ccsp_mib_utilities.c | 6 +++++- source/SnmpPlugin/ccsp_scalar_helper_access.c | 6 +++++- source/SnmpPlugin/ccsp_table_helper_access.c | 6 +++++- 4 files changed, 16 insertions(+), 3 deletions(-) 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)); }