ref: a1c3c34c70431447a89fbe08c3475dbfaee7b672
dir: /sys/src/cmd/auth/lib/okpasswd.c/
#include <u.h> #include <libc.h> #include <bio.h> #include <authsrv.h> #include "authcmdlib.h" char *trivial[] = { "login", "guest", "change me", "passwd", "no passwd", "anonymous", 0 }; char* okpasswd(char *p) { char passwd[PASSWDLEN]; char back[PASSWDLEN]; int i, n; strncpy(passwd, p, sizeof passwd - 1); passwd[sizeof passwd - 1] = '\0'; n = strlen(passwd); while(n > 0 && passwd[n - 1] == ' ') n--; passwd[n] = '\0'; for(i = 0; i < n; i++) back[i] = passwd[n - 1 - i]; back[n] = '\0'; if(n < 8) return "password must be at least 8 chars"; for(i = 0; trivial[i]; i++) if(strcmp(passwd, trivial[i]) == 0 || strcmp(back, trivial[i]) == 0) return "trivial password"; return 0; }