1
0
Эх сурвалжийг харах

* Fix crypted password getting truncated on share

Bryan Drewery 16 жил өмнө
parent
commit
2aea6f7a09
1 өөрчлөгдсөн 9 нэмэгдсэн , 8 устгасан
  1. 9 8
      src/userent.c

+ 9 - 8
src/userent.c

@@ -576,17 +576,18 @@ static bool pass_set(struct userrec *u, struct user_entry *e, void *buf)
   else {
   else {
     unsigned char *p = (unsigned char *) pass;
     unsigned char *p = (unsigned char *) pass;
 
 
-    if (strlen(pass) > MAXPASSLEN)
-      pass[MAXPASSLEN] = 0;
-    while (*p) {
-      if ((*p <= 32) || (*p == 127))
-	*p = '?';
-      p++;
-    }
     if (u->bot || (pass[0] == '+'))
     if (u->bot || (pass[0] == '+'))
       newpass = strdup(pass);
       newpass = strdup(pass);
-    else
+    else {
+      if (strlen(pass) > MAXPASSLEN)
+        pass[MAXPASSLEN] = 0;
+      while (*p) {
+        if ((*p <= 32) || (*p == 127))
+          *p = '?';
+        p++;
+      }
       newpass = salted_sha1(pass);
       newpass = salted_sha1(pass);
+    }
     e->u.extra = strdup(newpass);
     e->u.extra = strdup(newpass);
   }
   }
   if (!noshare)
   if (!noshare)