diff --git a/Changelog b/Changelog index d3fbac1..c140191 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,7 @@ [Changes 1.2c01] +* Fix out-of-bounds error in cryptit() found by Coverity. (flashback) + * Cleanup save_formats(). (caf) * Fix off-by-one error in add_socketread() and set_socketwrite() found diff --git a/source/ircaux.c b/source/ircaux.c index e725884..17f2230 100644 --- a/source/ircaux.c +++ b/source/ircaux.c @@ -2826,8 +2826,8 @@ static char saltChars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHJIKLMNOPQRSTUVWXYZ./"; char *cpass = (char *)string; char salt[3]; - salt[0] = saltChars[random_number(0) % 64]; - salt[1] = saltChars[random_number(0) % 64]; + salt[0] = saltChars[random_number(0) % sizeof(saltChars)]; + salt[1] = saltChars[random_number(0) % sizeof(saltChars)]; salt[2] = 0; #if !defined(WINNT) cpass = crypt(string, salt);