Index: res/snmp/agent.c =================================================================== --- res/snmp/agent.c (revision 69065) +++ res/snmp/agent.c (working copy) @@ -590,21 +590,26 @@ static u_char *ast_var_channel_bridge(struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method) { - unsigned long long_ret = 0; + static unsigned long long_ret; struct ast_channel *chan = NULL; + long_ret = 0; if (header_generic(vp, name, length, exact, var_len, write_method)) return NULL; - while ((chan = ast_channel_walk_locked(chan))) { + for (chan = ast_channel_walk_locked(NULL); chan; chan = ast_channel_walk_locked(chan)) { if (ast_bridged_channel(chan) != NULL) long_ret++; ast_channel_unlock(chan); } - *var_len = sizeof(long_ret); - - return (vp->magic == ASTCHANBRIDGECOUNT) ? (u_char *) &long_ret : NULL; + switch (vp->magic) { + case ASTCHANBRIDGECOUNT: + return (u_char *)&long_ret; + default: + break; + } + return NULL; } static u_char *ast_var_Config(struct variable *vp, oid *name, size_t *length,