diff options
Diffstat (limited to 'databases/postgresql83-server/files/patch-aj')
| -rw-r--r-- | databases/postgresql83-server/files/patch-aj | 118 | 
1 files changed, 0 insertions, 118 deletions
| diff --git a/databases/postgresql83-server/files/patch-aj b/databases/postgresql83-server/files/patch-aj deleted file mode 100644 index 94c0d6d79991..000000000000 --- a/databases/postgresql83-server/files/patch-aj +++ /dev/null @@ -1,118 +0,0 @@ ---- src/bin/pg_passwd/pg_passwd.c.orig	Sat Mar 24 01:54:55 2001 -+++ src/bin/pg_passwd/pg_passwd.c	Wed Apr 18 04:54:14 2001 -@@ -7,6 +7,12 @@ - #include <errno.h> - #include <time.h> - #include <ctype.h> -+ -+#if defined(__FreeBSD__) -+#include <pwd.h>  /* defines _PASSWORD_LEN, max # of characters in a password */ -+#include <sys/time.h> /* gettimeofday for password salt */ -+#endif -+ - #define issaltchar(c)	(isalnum((unsigned char) (c)) || (c) == '.' || (c) == '/') -  - #ifdef HAVE_TERMIOS_H -@@ -23,18 +29,31 @@ -  * We assume that the output of crypt(3) is always 13 characters, -  * and that at most 8 characters can usefully be sent to it. -  * -+ * For FreeBSD, take these values from /usr/include/pwd.h -  * Postgres usernames are assumed to be less than NAMEDATALEN chars long. -  */ -+#if defined(__FreeBSD__) -+#define CLEAR_PASSWD_LEN   _PASSWORD_LEN -+#define CRYPTED_PASSWD_LEN _PASSWORD_LEN /* max length, not containing NULL */ -+#define SALT_LEN 10 -+#else - #define CLEAR_PASSWD_LEN 8		/* not including null */ - #define CRYPTED_PASSWD_LEN 13	/* not including null */ -+#define SALT_LEN 3 -+#endif -+ -+static unsigned char itoa64[] =		/* 0 ... 63 => ascii - 64 */ -+	"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -+ -  - const char *progname; -  - static void usage(void); -+static void to64(char *s, long v, int n); - static void read_pwd_file(char *filename); - static void write_pwd_file(char *filename, char *bkname); - static void encrypt_pwd(char key[CLEAR_PASSWD_LEN + 1], --			char salt[3], -+			char salt[SALT_LEN], - 			char passwd[CRYPTED_PASSWD_LEN + 1]); - static void prompt_for_username(char *username); - static void prompt_for_password(char *prompt, char *password); -@@ -47,6 +66,15 @@ - 	printf("Report bugs to <pgsql-bugs@postgresql.org>.\n"); - } -  -+static void -+to64(char *s, long v, int n) -+{ -+	while (--n >= 0) { -+		*s++ = itoa64[v&0x3f]; -+		v >>= 6; -+	} -+} -+ - typedef struct - { - 	char	   *uname; -@@ -154,7 +182,7 @@ - 			if (q != NULL) - 				*(q++) = '\0'; -  --			if (strlen(p) != CRYPTED_PASSWD_LEN && strcmp(p, "+") != 0) -+			if (strlen(p) > CRYPTED_PASSWD_LEN && strcmp(p, "+") != 0) - 			{ - 				fprintf(stderr, "%s:%d: warning: invalid password length\n", - 						filename, npwds + 1); -@@ -221,15 +249,25 @@ -  - static void - encrypt_pwd(char key[CLEAR_PASSWD_LEN + 1], --			char salt[3], -+			char salt[SALT_LEN], - 			char passwd[CRYPTED_PASSWD_LEN + 1]) - { -+#if !defined(__FreeBSD__) - 	int			n; -- -+#endif - 	/* select a salt, if not already given */ - 	if (salt[0] == '\0') - 	{ -+#if defined(__FreeBSD__) -+		struct timeval tv; -+		srandomdev(); -+		gettimeofday(&tv,0); -+		to64(&salt[0], random(), 3); -+		to64(&salt[3], tv.tv_usec, 3); -+		to64(&salt[6], tv.tv_sec, 2); -+		salt[8] = '\0'; - 		srand(time(NULL)); -+#else - 		do - 		{ - 			n = rand() % 256; -@@ -241,6 +279,7 @@ - 		} while (!issaltchar(n)); - 		salt[1] = n; - 		salt[2] = '\0'; -+#endif - 	} -  - 	/* get encrypted password */ -@@ -335,7 +374,7 @@ - 	char	   *filename; - 	char		bkname[MAXPGPATH]; - 	char		username[NAMEDATALEN]; --	char		salt[3]; -+	char		salt[SALT_LEN]; - 	char		key[CLEAR_PASSWD_LEN + 1], - 				key2[CLEAR_PASSWD_LEN + 1]; - 	char		e_passwd[CRYPTED_PASSWD_LEN + 1]; | 
