[erlang-questions] Process dictionary bug in SNMP agent, when changing own passphrase?

Martin Bjorklund mbj@REDACTED
Thu Apr 19 08:47:06 CEST 2007


Scott Lystig Fritchie <fritchie@REDACTED> wrote:
> Greetings, I think I've found another bug in passphrase handling in
> the OTP SNMP agent.  I don't have a good suggestion for a fix yet, but
> perhaps this is a simple one?

[...]

> I think the bug lies in the snmp_master_agent process using its local
> process dictionary to store info about the query.  snmp_acm:init_ca/2
> has the put(), and snmp_user_based_sm_mib:validate_requester/3 has the
> get(),

Yes, this seems to be the bug.  I think the fix is fairly simple.  In
snmpa_agent:handle_info({snmp_pdu, ...}), the call to
AuthModule:init_check_access() (and cheat/1) should be moved into
handle_pdu().  handle_pdu() is called in the right process.  You just
have to make sure that the error cases (handle_acm_error and
discarded) are handled correctly.

But this is something I assume Micael Karlberg at OTP gladly fixes :)

We don't use multi_threading in the agent either.



/martin



More information about the erlang-questions mailing list