From: <no...@so...> - 2001-01-29 11:36:55
|
Bug #130390, was updated on 2001-Jan-29 03:36 Here is a current snapshot of the bug. Project: net-snmp Category: agent Status: Open Resolution: None Bug Group: None Priority: 5 Submitted by: nobody Assigned to : nobody Summary: memory leak in proxy Details: The proxy feature of snmpd has a memory leak in function proxy.c:var_simple_proxy. Each value returned is put in an allocated buffer which is never released (with memdup). My workaround is to change the buffer pointer to a static variable, and release it the next time the function is called: *** agent/mibgroup/ucd-snmp/proxy.c Sun Nov 12 13:34:52 2000 --- agent/mibgroup/ucd-snmp/proxy.c Mon Jan 29 11:34:28 2001 *************** *** 151,161 **** static char nullstr_ret[] = ""; static oid objid[MAX_OID_LEN]; struct simple_proxy *sp; ! u_char *ret = NULL; struct snmp_pdu *pdu, *response; int status; int ourlength; oid *ourname; DEBUGMSGTL(("proxy_var","--- entering: ")); --- 151,167 ---- static char nullstr_ret[] = ""; static oid objid[MAX_OID_LEN]; struct simple_proxy *sp; ! static u_char *ret = NULL; struct snmp_pdu *pdu, *response; int status; int ourlength; oid *ourname; + + if (ret != NULL) { + if (ret != &nullstr_ret) + free(ret); + ret = NULL; + } DEBUGMSGTL(("proxy_var","--- entering: ")); ( Emmanuel Preveraud de La Boutresse LINEO High Availability Group emm...@li... ) For detailed info, follow this link: http://sourceforge.net/bugs/?func=detailbug&bug_id=130390&group_id=12694 |