--- net-snmp-5.3.2.2/agent/mibgroup/mibII/ipAddr.c.ip-size 2006-09-08 18:09:51.000000000 +0200 +++ net-snmp-5.3.2.2/agent/mibgroup/mibII/ipAddr.c 2008-07-10 16:44:12.000000000 +0200 @@ -202,6 +202,7 @@ var_ipAddrEntry(struct variable *vp, #endif static struct ifnet ifnet; #endif /* hpux11 */ + static in_addr_t addr_ret; /* * fill in object part of name for current (less sizeof instance part) @@ -295,13 +296,15 @@ var_ipAddrEntry(struct variable *vp, case IPADADDR: *var_len = sizeof(uint32_t); #ifdef hpux11 - long_return = lowin_ifaddr.Addr; - return (u_char *) & long_return; + addr_ret = lowin_ifaddr.Addr; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; #elif defined(linux) || defined(sunV3) *var_len = sizeof(((struct sockaddr_in *) &lowin_ifnet.if_addr)->sin_addr.s_addr); return (u_char *) & ((struct sockaddr_in *) &lowin_ifnet.if_addr)-> sin_addr.s_addr; #else + *var_len = sizeof(((struct sockaddr_in *) &lowin_ifaddr.ia_addr)->sin_addr.s_addr); return (u_char *) & ((struct sockaddr_in *) &lowin_ifaddr. ia_addr)->sin_addr.s_addr; #endif @@ -311,15 +314,17 @@ var_ipAddrEntry(struct variable *vp, case IPADNETMASK: *var_len = sizeof(uint32_t); #ifdef hpux11 - long_return = lowin_ifaddr.NetMask; - return (u_char *) & long_return; + addr_ret = lowin_ifaddr.NetMask; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; #elif defined(linux) *var_len = sizeof(((struct sockaddr_in *) &lowin_ifnet.ia_subnetmask)->sin_addr.s_addr); return (u_char *) & ((struct sockaddr_in *) &lowin_ifnet. ia_subnetmask)->sin_addr.s_addr; #elif !defined(sunV3) - long_return = lowin_ifaddr.ia_subnetmask; - return (u_char *) & long_return; + addr_ret = lowin_ifaddr.ia_subnetmask; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; #endif case IPADBCASTADDR: #ifdef hpux11 @@ -625,7 +630,7 @@ var_ipAddrEntry(struct variable * vp, static mib2_ipAddrEntry_t Lowentry; int Found = 0; req_e req_type; - static uint32_t ipaddr_return; + static in_addr_t addr_ret; /* * fill in object part of name for current (less sizeof instance part) @@ -693,17 +698,18 @@ var_ipAddrEntry(struct variable * vp, switch (vp->magic) { case IPADADDR: *var_len = sizeof(uint32_t); - ipaddr_return = Lowentry.ipAdEntAddr; - return (u_char *) & ipaddr_return; + addr_ret = Lowentry.ipAdEntAddr; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; case IPADIFINDEX: long_return = Interface_Index_By_Name(Lowentry.ipAdEntIfIndex.o_bytes, Lowentry.ipAdEntIfIndex.o_length); return (u_char *) & long_return; case IPADNETMASK: - *var_len = sizeof(uint32_t); - ipaddr_return = Lowentry.ipAdEntNetMask; - return (u_char *) & ipaddr_return; + *var_len = sizeof(addr_ret); + addr_ret = Lowentry.ipAdEntNetMask; + return (u_char *) & addr_ret; case IPADBCASTADDR: long_return = Lowentry.ipAdEntBcastAddr; return (u_char *) & long_return; @@ -865,7 +871,8 @@ var_ipAddrEntry(struct variable *vp, u_char *cp; int lowinterface = -1; int i, interface; - + static in_addr_t addr_ret; + /* * fill in object part of name for current (less sizeof instance part) */ @@ -914,18 +921,18 @@ var_ipAddrEntry(struct variable *vp, *var_len = sizeof(long_return); switch (vp->magic) { case IPADADDR: - *var_len = sizeof(uint32_t); - long_return = ifs[i].addr.s_addr; - return (u_char *) & long_return; + addr_ret = ifs[i].addr.s_addr; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; case IPADIFINDEX: long_return = ifs[i].index; return (u_char *) & long_return; case IPADNETMASK: - *var_len = sizeof(uint32_t); - long_return = ifs[i].mask.s_addr; - return (u_char *) & long_return; + addr_ret = ifs[i].mask.s_addr; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; case IPADBCASTADDR: long_return = ntohl(ifs[i].bcast.s_addr) & 1; @@ -970,7 +977,8 @@ var_ipAddrEntry(struct variable *vp, DWORD status = NO_ERROR; DWORD statusRetry = NO_ERROR; DWORD dwActualSize = 0; - + static in_addr_t addr_ret; + /* * fill in object part of name for current (less sizeof instance part) */ @@ -1025,9 +1033,9 @@ var_ipAddrEntry(struct variable *vp, *var_len = sizeof(long_return); switch (vp->magic) { case IPADADDR: - *var_len = sizeof(uint32_t); - long_return = pIpAddrTable->table[i].dwAddr; - return (u_char *) & long_return; + addr_ret = pIpAddrTable->table[i].dwAddr; + *var_len = sizeof(addr_ret); + return (u_char *) & addr_ret; case IPADIFINDEX: long_return = pIpAddrTable->table[i].dwIndex; @@ -1035,10 +1043,10 @@ var_ipAddrEntry(struct variable *vp, return (u_char *) & long_return; case IPADNETMASK: - *var_len = sizeof(uint32_t); - long_return = pIpAddrTable->table[i].dwMask; + addr_ret = pIpAddrTable->table[i].dwMask; + *var_len = sizeof(addr_ret); free(pIpAddrTable); - return (u_char *) & long_return; + return (u_char *) & addr_ret; case IPADBCASTADDR: long_return = pIpAddrTable->table[i].dwBCastAddr; diff -up net-snmp-5.3.2.2/agent/mibgroup/mibII/udpTable.c.ip-size net-snmp-5.3.2.2/agent/mibgroup/mibII/udpTable.c --- net-snmp-5.3.2.2/agent/mibgroup/mibII/udpTable.c.ip-size 2006-09-08 18:09:51.000000000 +0200 +++ net-snmp-5.3.2.2/agent/mibgroup/mibII/udpTable.c 2008-07-10 16:35:39.000000000 +0200 @@ -188,7 +188,8 @@ udpTable_handler(netsnmp_mib_handler netsnmp_table_request_info *table_info; UDPTABLE_ENTRY_TYPE *entry; oid subid; - long port,addr; + long port; + in_addr_t addr; DEBUGMSGTL(("mibII/udpTable", "Handler - mode %s\n", se_find_label_in_slist("agent_mode", reqinfo->mode))); @@ -360,7 +361,8 @@ udpTable_next_entry( void **loop_context netsnmp_iterator_info *data) { UDPTABLE_ENTRY_TYPE *entry = (UDPTABLE_ENTRY_TYPE *)*loop_context; - long port, addr; + long port; + in_addr_t addr; if (!entry) return NULL; @@ -373,7 +375,7 @@ udpTable_next_entry( void **loop_context (u_char*)&IN6_EXTRACT_V4ADDR(&entry->pcb.inp_laddr), sizeof(IN6_EXTRACT_V4ADDR(&entry->pcb.inp_laddr))); #else - addr = UDP_ADDRESS_TO_NETWORK_ORDER((u_long)entry->UDPTABLE_LOCALADDRESS); + addr = UDP_ADDRESS_TO_NETWORK_ORDER((in_addr_t)entry->UDPTABLE_LOCALADDRESS); snmp_set_var_value(index, (u_char *)&addr, sizeof(entry->UDPTABLE_LOCALADDRESS)); #endif iff -up net-snmp-5.3.2.2/include/net-snmp/types.h.ip-size net-snmp-5.3.2.2/include/net-snmp/types.h --- net-snmp-5.3.2.2/include/net-snmp/types.h.ip-size 2007-07-04 00:36:42.000000000 +0200 +++ net-snmp-5.3.2.2/include/net-snmp/types.h 2008-07-10 16:35:39.000000000 +0200 @@ -60,7 +60,7 @@ typedef u_int socklen_t; #endif #ifndef HAVE_IN_ADDR_T -typedef u_int in_addr_t; +typedef uint32_t in_addr_t; #endif #ifndef HAVE_SSIZE_T