X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fircd_crypt_smd5.c;h=439c08988de0f71a1f500267ffe07e01f69d0270;hb=refs%2Fheads%2Fupstream;hp=68b78d87cdd8214cebe1be4577bd270e4d8cf34b;hpb=9a09546a1a05722b84912465c49f6d61b79f076c;p=ircu2.10.12-pk.git diff --git a/ircd/ircd_crypt_smd5.c b/ircd/ircd_crypt_smd5.c index 68b78d8..439c089 100644 --- a/ircd/ircd_crypt_smd5.c +++ b/ircd/ircd_crypt_smd5.c @@ -24,8 +24,8 @@ * * ircd_crypt_smd5 is largely taken from md5_crypt.c from the Linux PAM * source code. it's been modified to fit in with ircu and some of the - * undeeded code has been removed. the source file md5_crypt.c has the - * following licence, so if any of our opers or admins are in Denmark + * unneeded code has been removed. the source file md5_crypt.c has the + * following license, so if any of our opers or admins are in Denmark * they better go buy them a drink ;) -- hikari * * ---------------------------------------------------------------------------- @@ -39,11 +39,12 @@ #include "config.h" #include "ircd_crypt.h" #include "ircd_crypt_smd5.h" +#include "ircd_log.h" #include "ircd_md5.h" #include "s_debug.h" #include "ircd_alloc.h" -#include +/* #include -- Now using assert in ircd_log.h */ #include #include @@ -55,7 +56,7 @@ static unsigned char itoa64[] = /* 0 ... 63 => ascii - 64 */ * @param v The unsigned long we're working on * @param n The number of bytes we're working with * - * This is used to produce the normal MD5 hash everyone is familar with. + * This is used to produce the normal MD5 hash everyone is familiar with. * It takes the value v and converts n bytes of it it into an ASCII string in * 6-bit chunks, the resulting string is put at the address pointed to by s. * @@ -74,16 +75,17 @@ static void to64(char *s, unsigned long v, int n) * @return The Salted MD5 password of key and salt * * Erm does exactly what the brief comment says. If you think I'm writing a - * description of how MD5 works, you have another thing comming. Go and read - * Applied Cryptopgraphy by Bruce Schneier. The only difference is we use a - * salt at the begining of the password to perturb it so that the same password + * description of how MD5 works, you have another think coming. Go and read + * Applied Cryptography by Bruce Schneier. The only difference is we use a + * salt at the beginning of the password to perturb it so that the same password * doesn't always produce the same hash. * */ const char* ircd_crypt_smd5(const char* key, const char* salt) { const char *magic = "$1$"; -char *passwd, *p; +static char passwd[120]; +char *p; const char *sp, *ep; unsigned char final[16]; int sl, pl, i, j; @@ -99,11 +101,6 @@ unsigned long l; /* Refine the Salt first */ ep = sp = salt; - if(NULL == (passwd = (char *)MyMalloc(120))) - return NULL; - - memset(passwd, 0, 120); - for (ep = sp; *ep && *ep != '$' && ep < (sp + 8); ep++) continue; @@ -140,9 +137,8 @@ unsigned long l; else MD5Update(&ctx, (unsigned const char *)key+j, 1); - /* Now make the output string - strcpy(passwd, magic); - strncat(passwd, sp, sl); */ + /* Now make the output string. */ + memset(passwd, 0, 120); strncpy(passwd, sp, sl); strcat(passwd, "$");