- include strings.h

Thanks to Rich Felker for pointing this out.
This commit is contained in:
Bernhard Reutner-Fischer 2006-05-19 12:30:00 +00:00
parent a85a63f6ee
commit a2a647dfc1
5 changed files with 12 additions and 7 deletions

View file

@ -12,6 +12,7 @@
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#include <strings.h>
#include <time.h> #include <time.h>
#include <math.h> #include <math.h>
#include <ctype.h> #include <ctype.h>

View file

@ -53,6 +53,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <strings.h>
#include <termios.h> #include <termios.h>
#include <unistd.h> #include <unistd.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>

View file

@ -18,12 +18,12 @@
This password types should not be permitted: This password types should not be permitted:
a) pure numbers: birthdates, social security number, license plate, phone numbers; a) pure numbers: birthdates, social security number, license plate, phone numbers;
b) words and all letters only passwords (uppercase, lowercase or mixed) b) words and all letters only passwords (uppercase, lowercase or mixed)
as palindromes, consecutive or repetitive letters as palindromes, consecutive or repetitive letters
or adjacent letters on your keyboard; or adjacent letters on your keyboard;
c) username, real name, company name or (e-mail?) address c) username, real name, company name or (e-mail?) address
in any form (as-is, reversed, capitalized, doubled, etc.). in any form (as-is, reversed, capitalized, doubled, etc.).
(we can check only against username, gecos and hostname) (we can check only against username, gecos and hostname)
d) common and obvious letter-number replacements d) common and obvious letter-number replacements
(e.g. replace the letter O with number 0) (e.g. replace the letter O with number 0)
such as "M1cr0$0ft" or "P@ssw0rd" (CAVEAT: we cannot check for them such as "M1cr0$0ft" or "P@ssw0rd" (CAVEAT: we cannot check for them
without the use of a dictionary). without the use of a dictionary).
@ -42,12 +42,13 @@
#include <ctype.h> #include <ctype.h>
#include <unistd.h> #include <unistd.h>
#include <string.h> #include <string.h>
#include <strings.h>
#include "libbb.h" #include "libbb.h"
/* passwords should consist of 6 (to 8 characters) */ /* passwords should consist of 6 (to 8 characters) */
#define MINLEN 6 #define MINLEN 6
static int string_checker_helper(const char *p1, const char *p2) __attribute__ ((__pure__)); static int string_checker_helper(const char *p1, const char *p2) __attribute__ ((__pure__));
@ -93,7 +94,7 @@ static int string_checker(const char *p1, const char *p2)
#define NUMBERS 4 #define NUMBERS 4
#define SPECIAL 8 #define SPECIAL 8
static const char *obscure_msg(const char *old_p, const char *new_p, const struct passwd *pw) static const char *obscure_msg(const char *old_p, const char *new_p, const struct passwd *pw)
{ {
int i; int i;
int c; int c;
@ -107,7 +108,7 @@ static const char *obscure_msg(const char *old_p, const char *new_p, const struc
/* size */ /* size */
if (!new_p || (length = strlen(new_p)) < MINLEN) if (!new_p || (length = strlen(new_p)) < MINLEN)
return("too short"); return("too short");
/* no username as-is, as sub-string, reversed, capitalized, doubled */ /* no username as-is, as sub-string, reversed, capitalized, doubled */
if (string_checker(new_p, pw->pw_name)) { if (string_checker(new_p, pw->pw_name)) {
return "similar to username"; return "similar to username";
@ -152,11 +153,11 @@ static const char *obscure_msg(const char *old_p, const char *new_p, const struc
return "too many similar characters"; return "too many similar characters";
} }
} }
for(i=0;i<4;i++) for (i=0; i<4; i++)
if (mixed & (1<<i)) size -= 2; if (mixed & (1<<i)) size -= 2;
if (length < size) if (length < size)
return "too weak"; return "too weak";
if (old_p && old_p[0] != '\0') { if (old_p && old_p[0] != '\0') {
/* check vs. old password */ /* check vs. old password */
if (string_checker(new_p, old_p)) { if (string_checker(new_p, old_p)) {

View file

@ -11,6 +11,7 @@
#include <signal.h> #include <signal.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <strings.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>

View file

@ -12,6 +12,7 @@
#include <unistd.h> #include <unistd.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <strings.h>
#include <unistd.h> #include <unistd.h>
#include <signal.h> #include <signal.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>