libbb: random hunt for statics
[oweals/busybox.git] / libbb / pw_encrypt.c
index d546bc883ec4d3606b37f19b1fbd7b031720e981..e9cf4e3b8ec5f8d0c49145e7d5e5a8f011b031e6 100644 (file)
 
 char *pw_encrypt(const char *clear, const char *salt)
 {
-       static char cipher[128];
-       char *cp;
+       /* Was static char[BIGNUM]. Malloced thing works as well */
+       static char *cipher;
 
 #if 0 /* was CONFIG_FEATURE_SHA1_PASSWORDS, but there is no such thing??? */
        if (strncmp(salt, "$2$", 3) == 0) {
                return sha1_crypt(clear);
        }
 #endif
-       cp = (char *) crypt(clear, salt);
-       /* if crypt (a nonstandard crypt) returns a string too large,
-          truncate it so we don't overrun buffers and hope there is
-          enough security in what's left */
-       safe_strncpy(cipher, cp, sizeof(cipher));
+
+       free(cipher);
+       cipher = xstrdup(crypt(clear, salt));
        return cipher;
 }