X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=blobdiff_plain;f=src%2Fhome%2Fuser-record-util.c;fp=src%2Fhome%2Fuser-record-util.c;h=6928427730bcb11f7088241ed19f422e7ab909a3;hp=0bbe44ce264826b18bea1946da7b3634a7809849;hb=3f440b13b7d830ed44140266205ba0da9b23db53;hpb=5e258d734ad02c2aa7888e3fcf047442d6b0f0f0 diff --git a/src/home/user-record-util.c b/src/home/user-record-util.c index 0bbe44ce264..6928427730b 100644 --- a/src/home/user-record-util.c +++ b/src/home/user-record-util.c @@ -806,20 +806,13 @@ int user_record_make_hashed_password(UserRecord *h, char **secret, bool extend) } STRV_FOREACH(i, secret) { - _cleanup_free_ char *salt = NULL; - struct crypt_data cd = {}; - char *k; + _cleanup_(erase_and_freep) char *hashed = NULL; - r = make_salt(&salt); + r = hash_password(*i, &hashed); if (r < 0) return r; - errno = 0; - k = crypt_r(*i, salt, &cd); - if (!k) - return errno_or_else(EINVAL); - - r = strv_extend(&np, k); + r = strv_consume(&np, TAKE_PTR(hashed)); if (r < 0) return r; }