]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
refactor get_salt function
authorjuyin <zhuyan34@huawei.com>
Fri, 1 Apr 2022 01:26:29 +0000 (09:26 +0800)
committerSerge Hallyn <serge@hallyn.com>
Mon, 4 Apr 2022 02:07:09 +0000 (21:07 -0500)
refactor get_salt function to make it easier to read.

src/chpasswd.c

index d0da14c69087accec08bcd1ebc1d3af06578bc22..ce8c10fd3ce723c353a957f10a1bbf38ada6f00a 100644 (file)
@@ -394,38 +394,36 @@ static void close_files (void)
 
 static const char *get_salt(void)
 {
-       if (   !eflg
-               && (   (NULL == crypt_method)
-                       || (0 != strcmp (crypt_method, "NONE")))) {
-               void *arg = NULL;
+       void *arg = NULL;
 
-               if (md5flg) {
-                       crypt_method = "MD5";
-               }
+       if (eflg || ((NULL != crypt_method) && (0 == strcmp (crypt_method, "NONE")))) {
+               return NULL;
+       }
+
+       if (md5flg) {
+               crypt_method = "MD5";
+       }
 #if defined(USE_SHA_CRYPT) || defined(USE_BCRYPT) || defined(USE_YESCRYPT)
-               if (sflg) {
+       if (sflg) {
 #if defined(USE_SHA_CRYPT)
-                       if (   (0 == strcmp (crypt_method, "SHA256"))
-                               || (0 == strcmp (crypt_method, "SHA512"))) {
-                               arg = &sha_rounds;
-                       }
+               if ((0 == strcmp (crypt_method, "SHA256"))
+                || (0 == strcmp (crypt_method, "SHA512"))) {
+                       arg = &sha_rounds;
+               }
 #endif                         /* USE_SHA_CRYPT */
 #if defined(USE_BCRYPT)
-                       if (0 == strcmp (crypt_method, "BCRYPT")) {
-                               arg = &bcrypt_rounds;
-                       }
+               if (0 == strcmp (crypt_method, "BCRYPT")) {
+                       arg = &bcrypt_rounds;
+               }
 #endif                         /* USE_BCRYPT */
 #if defined(USE_YESCRYPT)
-                       if (0 == strcmp (crypt_method, "YESCRYPT")) {
-                               arg = &yescrypt_cost;
-                       }
-#endif                         /* USE_YESCRYPT */
+               if (0 == strcmp (crypt_method, "YESCRYPT")) {
+                       arg = &yescrypt_cost;
                }
-#endif
-               return crypt_make_salt (crypt_method, arg);
+#endif                         /* USE_YESCRYPT */
        }
-
-       return NULL;
+#endif
+       return crypt_make_salt (crypt_method, arg);
 }
 
 int main (int argc, char **argv)