diff --git a/ChangeLog b/ChangeLog index 0c92e18d..24ad6b2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-01-06 Nicolas François + + * lib/encrypt.c: Set the method string as a constant string. + 2008-01-06 Nicolas François * lib/port.c: Assume declares errno. diff --git a/lib/encrypt.c b/lib/encrypt.c index eda9713f..9a880e83 100644 --- a/lib/encrypt.c +++ b/lib/encrypt.c @@ -54,7 +54,7 @@ char *pw_encrypt (const char *clear, const char *salt) * supported, and return a DES encrypted password. */ if (salt && salt[0] == '$' && strlen (cp) <= 13) { - char *method = "$1$"; + const char *method; switch (salt[1]) { case '1': @@ -67,7 +67,11 @@ char *pw_encrypt (const char *clear, const char *salt) method = "SHA512"; break; default: - method[1] = salt[1]; + { + static char nummethod[4] = "$x$"; + nummethod[1] = salt[1]; + method = &nummethod[0]; + } } fprintf (stderr, _("crypt method not supported by libcrypt? (%s)\n"),