- if (!pass)
- return -2;
- memcpy (salt, pe->des, 2);
- salt[2] = '\0';
- des_try = crypt (pass, salt);
+
+ if (pe->des[0] != '$') /* Not MD5? (assume DES) */
+ {
+ if (strlen(pass) > 8) /* maximum key length is 8 */
+ return -2;
+ }
+ des_try = crypt (pass, pe->des);
+
+ assert(des_try);