Remove the dependency on security/mhash by calling MD5Data directly.
No REVISION bump, as the port remained FORBIDDEN ever since the last upgrade. While here, clarify the FORBIDDEN message a little.
This commit is contained in:
parent
f34fc29fc1
commit
396ebf2f43
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=52828
@ -14,10 +14,9 @@ DISTFILES= ${PORTNAME}_${PORTVERSION}${EXTRACT_SUFX}
|
||||
|
||||
MAINTAINER= mi@aldan.algebra.com
|
||||
|
||||
LIB_DEPENDS= mhash:${PORTSDIR}/security/mhash \
|
||||
pq:${PORTSDIR}/databases/postgresql7
|
||||
LIB_DEPENDS= pq:${PORTSDIR}/databases/postgresql7
|
||||
|
||||
FORBIDDEN= security
|
||||
FORBIDDEN= can be broken by carefully crafted password string
|
||||
|
||||
# When the family of Debian mirrors is added to bsd.port.mk,
|
||||
# this will suddenly start making sense:
|
||||
|
@ -4,9 +4,9 @@ SRCS= pam_pgsql.c pam_get_pass.c pam_std_option.c pam_get_service.c
|
||||
LIB= pam_pgsql
|
||||
SHLIB_NAME=${LIB}.so
|
||||
|
||||
LDADD= -lpam -L${LOCALBASE}/lib -lpq -lmhash
|
||||
LDADD= -lpam -L${LOCALBASE}/lib -lpq -lmd
|
||||
CFLAGS+= -Wall -D_GNU_SOURCE \
|
||||
-I${LOCALBASE}/include/pgsql -I${LOCALBASE}/include
|
||||
-I${LOCALBASE}/include/pgsql
|
||||
|
||||
INTERNALLIB= we don't need no stinking static lib
|
||||
NOPROFILE= we don't need no profiling either
|
||||
|
97
security/pam-pgsql/files/patch-md5
Normal file
97
security/pam-pgsql/files/patch-md5
Normal file
@ -0,0 +1,97 @@
|
||||
This patch replaces calls to mhash library with direct calls into -lmd,
|
||||
greatly simplifying things...
|
||||
|
||||
--- pam_pgsql.c Wed Apr 18 16:47:57 2001
|
||||
+++ pam_pgsql.c Wed Jan 9 14:46:01 2002
|
||||
@@ -14,5 +14,7 @@
|
||||
#include <syslog.h>
|
||||
#include <ctype.h>
|
||||
-#include <mhash.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <unistd.h>
|
||||
+#include <md5.h>
|
||||
#include <time.h>
|
||||
#include <libpq-fe.h>
|
||||
@@ -336,32 +336,7 @@
|
||||
s = strdup(crypt(pass, crypt_make_salt()));
|
||||
break;
|
||||
- case PW_MD5: {
|
||||
- char *buf;
|
||||
- int buf_size;
|
||||
- MHASH handle;
|
||||
- unsigned char *hash;
|
||||
-
|
||||
- handle = mhash_init(MHASH_MD5);
|
||||
-
|
||||
- if(handle == MHASH_FAILED) {
|
||||
- SYSLOG("could not initialize mhash library!");
|
||||
- } else {
|
||||
- int i;
|
||||
-
|
||||
- mhash(handle, pass, strlen(pass));
|
||||
- hash = mhash_end(handle);
|
||||
-
|
||||
- buf_size = (mhash_get_block_size(MHASH_MD5) * 2)+1;
|
||||
- buf = (char *)malloc(buf_size);
|
||||
- bzero(buf, buf_size);
|
||||
-
|
||||
- for(i = 0; i < mhash_get_block_size(MHASH_MD5); i++) {
|
||||
- /* should be safe */
|
||||
- sprintf(&buf[i * 2], "%.2x", hash[i]);
|
||||
- }
|
||||
- s = buf;
|
||||
- }
|
||||
- }
|
||||
- break;
|
||||
+ case PW_MD5:
|
||||
+ s = MD5Data(pass, strlen(pass), NULL);
|
||||
+ break;
|
||||
case PW_CLEAR:
|
||||
default:
|
||||
@@ -416,35 +391,15 @@
|
||||
}
|
||||
break;
|
||||
- case PW_MD5: {
|
||||
- char *buf;
|
||||
- int buf_size;
|
||||
- MHASH handle;
|
||||
- unsigned char *hash;
|
||||
-
|
||||
- handle = mhash_init(MHASH_MD5);
|
||||
-
|
||||
- if(handle == MHASH_FAILED) {
|
||||
- SYSLOG("could not initialize mhash library!");
|
||||
- } else {
|
||||
- int i;
|
||||
-
|
||||
- mhash(handle, passwd, strlen(passwd));
|
||||
- hash = mhash_end(handle);
|
||||
-
|
||||
- buf_size = (mhash_get_block_size(MHASH_MD5) * 2)+1;
|
||||
- buf = (char *)malloc(buf_size);
|
||||
- bzero(buf, buf_size);
|
||||
-
|
||||
- for(i = 0; i < mhash_get_block_size(MHASH_MD5); i++) {
|
||||
- sprintf(&buf[i * 2], "%.2x", hash[i]);
|
||||
- }
|
||||
-
|
||||
- if(strcmp(buf, stored_pw) == 0)
|
||||
- rc = PAM_SUCCESS;
|
||||
-
|
||||
- free(buf);
|
||||
- }
|
||||
- }
|
||||
- break;
|
||||
+ case PW_MD5:
|
||||
+ if(strlen(stored_pw) != 32) {
|
||||
+ SYSLOG("stored password has invalid length.");
|
||||
+ } else {
|
||||
+ char *hash;
|
||||
+ hash = MD5Data(passwd, strlen(passwd), NULL);
|
||||
+ if(strcmp(hash, stored_pw) == 0)
|
||||
+ rc = PAM_SUCCESS;
|
||||
+ free(hash);
|
||||
+ }
|
||||
+ break;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user