# HG changeset patch # User jlarmour # Date 1048565691 0 # Node ID 6001f11af5db288d1087777efcce17b214e1693c # Parent c398056d144d765c90ef44176afe84f35b8a0db7 * src/keytools.c (decode_keychange): Avoid undefined behaviour. (encode_keychange): Ditto. diff --git a/packages/net/snmp/lib/current/ChangeLog b/packages/net/snmp/lib/current/ChangeLog --- a/packages/net/snmp/lib/current/ChangeLog +++ b/packages/net/snmp/lib/current/ChangeLog @@ -1,3 +1,8 @@ +2003-03-24 Jonathan Larmour + + * src/keytools.c (decode_keychange): Avoid undefined behaviour. + (encode_keychange): Ditto. + 2003-02-28 Andrew Lunn * include/config.h: Make random use rand on FreeBSD. diff --git a/packages/net/snmp/lib/current/src/keytools.c b/packages/net/snmp/lib/current/src/keytools.c --- a/packages/net/snmp/lib/current/src/keytools.c +++ b/packages/net/snmp/lib/current/src/keytools.c @@ -507,7 +507,8 @@ encode_keychange( oid *hashtype, u_int kcstring += properlength; nbytes = 0; while ((int)(nbytes++) < properlength) { - *kcstring++ = *kcstring ^ *newkey++; + u_char kcs = *kcstring; + *kcstring++ = kcs ^ *newkey++; } } @@ -624,7 +625,8 @@ decode_keychange( oid *hashtype, u_int bufp = kcstring+properlength; nbytes = 0; while ((int)(nbytes++) < properlength) { - *newkey++ = *newkey ^ *bufp++; + u_char nk = *newkey; + *newkey++ = nk ^ *bufp++; } }