changeset 865:6001f11af5db

* src/keytools.c (decode_keychange): Avoid undefined behaviour. (encode_keychange): Ditto.
author jlarmour
date Tue, 25 Mar 2003 04:14:51 +0000
parents c398056d144d
children 14cc4c926c7e
files packages/net/snmp/lib/current/ChangeLog packages/net/snmp/lib/current/src/keytools.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/snmp/lib/current/ChangeLog
+++ b/packages/net/snmp/lib/current/ChangeLog
@@ -1,3 +1,8 @@
+2003-03-24  Jonathan Larmour  <jifl@eCosCentric.com>
+
+	* src/keytools.c (decode_keychange): Avoid undefined behaviour.
+	(encode_keychange): Ditto.
+
 2003-02-28  Andrew Lunn  <andrew.lunn@ascom.ch>
 
 	* include/config.h: Make random use rand on FreeBSD.
--- 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++;
             }
         }