diff -ru gopher2_3.1.old/gopherd/authenticate.c gopher2_3.1/gopherd/authenticate.c --- gopher2_3.1.old/gopherd/authenticate.c Sat Aug 12 16:34:57 2000 +++ gopher2_3.1/gopherd/authenticate.c Sat Aug 12 16:51:40 2000 @@ -496,13 +496,10 @@ Desnum c; int i, keysize; -/* strcpy(keystr, user); - strcat(keystr, ip); - strcat(keystr, key); */ - i = keysize = sizeof(keystr)-1; - strncpy(keystr, user, i), i -= strlen(keystr); - strncat(keystr, ip, i), i -= strlen(keystr); - strncat(keystr, key, i), keystr[keysize] = '\0'; + keysize = sizeof(keystr)-1, memset(keystr, 0, keysize+1); + strncat(keystr, user, keysize), i = keysize - strlen(keystr); + strncat(keystr, ip, i), i = keysize - strlen(keystr); + strncat(keystr, key, i); Debug("Encoding key %s\n", keystr);