initial commit of file from CVS for cpu on Wed 12 Jul 14:07:08 BST 2023
This commit is contained in:
parent
54c5460785
commit
36449a1f7e
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.4.3.tar.bz2 filter=lfs diff=lfs merge=lfs -text
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.rpm
|
||||||
|
*.log
|
||||||
|
*spec-20*
|
21
Makefile
Normal file
21
Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Makefile for source rpm: cpu
|
||||||
|
# $Id: Makefile,v 1.1 2016/02/04 12:17:43 vip-ire Exp $
|
||||||
|
NAME := cpu
|
||||||
|
SPECFILE = $(firstword $(wildcard *.spec))
|
||||||
|
|
||||||
|
define find-makefile-common
|
||||||
|
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||||
|
|
||||||
|
ifeq ($(MAKEFILE_COMMON),)
|
||||||
|
# attept a checkout
|
||||||
|
define checkout-makefile-common
|
||||||
|
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(MAKEFILE_COMMON)
|
10
README.md
10
README.md
@ -1,3 +1,11 @@
|
|||||||
# cpu
|
# cpu
|
||||||
|
|
||||||
3rd Party (Maintained by Koozali) git repo for cpu smeserver
|
3rd Party (Maintained by Koozali) git repo for cpu smeserver
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
|
||||||
|
*Once it has been checked, then this comment will be deleted*
|
||||||
|
<br />
|
||||||
|
|
||||||
|
The CPU (Central Processing Unit) is a piece of software that controls the overall operation of a computer system. It is responsible for interpreting and executing instructions from a software program, and for managing the flow of data among components. The CPU can interpret instructions from hardware components, such as memory, input/output devices, and other peripherals. It can also manage the allocation of resources to these components in order to maximize performance and efficiency.
|
||||||
|
1
contriborbase
Normal file
1
contriborbase
Normal file
@ -0,0 +1 @@
|
|||||||
|
sme10
|
12
cpu-1.4.3-doc_install.patch
Normal file
12
cpu-1.4.3-doc_install.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/doc/Makefile.in mezzanine_patched_cpu-1.4.3/doc/Makefile.in
|
||||||
|
--- cpu-1.4.3/doc/Makefile.in 2004-01-11 23:52:20.000000000 -0500
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/doc/Makefile.in 2006-09-26 13:27:34.000000000 -0400
|
||||||
|
@@ -120,7 +120,7 @@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
-sysconfdir = @sysconfdir@
|
||||||
|
+sysconfdir = $(DESTDIR)@sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
SUBDIRS = man
|
||||||
|
data_DATA = cpu.conf.doc test.ldif
|
15
cpu-1.4.3-empty-attr.patch
Normal file
15
cpu-1.4.3-empty-attr.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.empty-attr cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c.empty-attr 2010-11-05 21:18:12.000000000 -0600
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-05 21:19:48.000000000 -0600
|
||||||
|
@@ -282,7 +282,10 @@ ldapBuildListStr (int mod_op, char *mod_
|
||||||
|
{
|
||||||
|
char **temp;
|
||||||
|
|
||||||
|
- if (value == NULL)
|
||||||
|
+ if (mod_type == NULL || strlen(mod_type) == strspn(mod_type, " "))
|
||||||
|
+ return mods;
|
||||||
|
+
|
||||||
|
+ if (value == NULL || strlen(value) == strspn(value, " "))
|
||||||
|
return mods;
|
||||||
|
|
||||||
|
mods = ldapAddList (mods);
|
26
cpu-1.4.3-fix-cn.patch
Normal file
26
cpu-1.4.3-fix-cn.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.fix-cn cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c.fix-cn 2010-11-05 11:36:45.000000000 -0600
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-05 11:40:11.000000000 -0600
|
||||||
|
@@ -437,7 +437,9 @@ ldapGetCn (void)
|
||||||
|
size_t slen = 0;
|
||||||
|
char *temp;
|
||||||
|
|
||||||
|
- if (globalLdap->first_name && globalLdap->last_name)
|
||||||
|
+ if (globalLdap->passent->pw_gecos)
|
||||||
|
+ temp = globalLdap->passent->pw_gecos;
|
||||||
|
+ else if (globalLdap->first_name && globalLdap->last_name)
|
||||||
|
{
|
||||||
|
slen =
|
||||||
|
strlen (globalLdap->first_name) + strlen (globalLdap->last_name) + 2;
|
||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/user.c.fix-cn cpu-1.4.3/src/plugins/ldap/user.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/user.c.fix-cn 2004-01-10 19:12:37.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-05 11:46:48.000000000 -0600
|
||||||
|
@@ -256,6 +256,8 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||||
|
ldapBuildList (op, "objectClass", globalLdap->user_object_class,
|
||||||
|
userMod);
|
||||||
|
}
|
||||||
|
+ else if (globalLdap->passent->pw_gecos || (globalLdap->first_name && globalLdap->last_name))
|
||||||
|
+ userMod = ldapBuildListStr (op, "cn", ldapGetCn (), userMod);
|
||||||
|
|
||||||
|
userMod =
|
||||||
|
ldapBuildListStr (op, "uid", globalLdap->passent->pw_name, userMod);
|
37
cpu-1.4.3-gid-not-supp.patch
Normal file
37
cpu-1.4.3-gid-not-supp.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/user.c.gid-not-supp cpu-1.4.3/src/plugins/ldap/user.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/user.c.gid-not-supp 2010-11-07 21:51:45.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-07 22:01:26.000000000 -0700
|
||||||
|
@@ -402,33 +402,6 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (globalLdap->gid)
|
||||||
|
- {
|
||||||
|
- tcn = cfg_get_str ("LDAP", "GROUP_CN_STRING");
|
||||||
|
- if (tcn == NULL)
|
||||||
|
- tcn = strdup ("cn");
|
||||||
|
- strsize = strlen (globalLdap->gid) +
|
||||||
|
- strlen (gf) + strlen (tcn) + 8;
|
||||||
|
- filter2 = (char *) malloc (sizeof (char) * strsize);
|
||||||
|
- if (filter2 == NULL)
|
||||||
|
- return -1;
|
||||||
|
- bzero (filter2, strsize);
|
||||||
|
- snprintf (filter2, strsize, "(&%s (%s=%s))",
|
||||||
|
- gf, tcn, globalLdap->gid);
|
||||||
|
- if (ldap_search_st
|
||||||
|
- (ld, globalLdap->group_base, LDAP_SCOPE_SUBTREE, filter2,
|
||||||
|
- attrs, 0, &globalLdap->timeout, res) != LDAP_SUCCESS)
|
||||||
|
- {
|
||||||
|
- CPU_ldapPerror (ld, globalLdap,
|
||||||
|
- "ldapUserCheck: ldap_search_st");
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- ldapres = ldap_count_entries (ld, res[0]);
|
||||||
|
- if (ldapres > 0)
|
||||||
|
- {
|
||||||
|
- ldap_modify_s (ld, ldap_get_dn (ld, res[0]), tmod);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
free (gf);
|
||||||
|
}
|
||||||
|
if (globalLdap->first_name)
|
75
cpu-1.4.3-md5crypt.patch
Normal file
75
cpu-1.4.3-md5crypt.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/include/util/hash.h mezzanine_patched_cpu-1.4.3/src/include/util/hash.h
|
||||||
|
--- cpu-1.4.3/src/include/util/hash.h 2003-09-26 22:27:01.000000000 -0400
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/include/util/hash.h 2007-07-24 15:26:10.000000000 -0400
|
||||||
|
@@ -49,12 +49,14 @@
|
||||||
|
#define PASSWORD_SIZE 128
|
||||||
|
|
||||||
|
/* hash_t should have a one-to-one correspondence with hashes */
|
||||||
|
+/* HVB added H_MD5CRYPT */
|
||||||
|
typedef enum {
|
||||||
|
H_SHA1 = 0,
|
||||||
|
H_SSHA1,
|
||||||
|
H_MD5,
|
||||||
|
H_SMD5,
|
||||||
|
H_CRYPT,
|
||||||
|
+ H_MD5CRYPT,
|
||||||
|
H_CLEAR,
|
||||||
|
H_UNKNOWN,
|
||||||
|
} hash_t;
|
||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/ld.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 15:26:53.000000000 -0400
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 15:26:10.000000000 -0400
|
||||||
|
@@ -478,6 +478,9 @@
|
||||||
|
case H_CRYPT:
|
||||||
|
return ldap_hashes[H_CRYPT];
|
||||||
|
break;
|
||||||
|
+ case H_MD5CRYPT: /* HvB */
|
||||||
|
+ return ldap_hashes[H_CRYPT];
|
||||||
|
+ break;
|
||||||
|
case H_CLEAR:
|
||||||
|
/* FIXME: this should work so that the prefix is returned for the
|
||||||
|
correct hash but the password doesn't get encrypted */
|
||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/util/hash.c mezzanine_patched_cpu-1.4.3/src/util/hash.c
|
||||||
|
--- cpu-1.4.3/src/util/hash.c 2003-10-22 17:29:19.000000000 -0400
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/util/hash.c 2007-07-24 15:26:10.000000000 -0400
|
||||||
|
@@ -50,6 +50,7 @@
|
||||||
|
"md5",
|
||||||
|
"smd5",
|
||||||
|
"crypt",
|
||||||
|
+ "md5crypt",
|
||||||
|
"clear",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
@@ -140,6 +141,11 @@
|
||||||
|
char * passphrase = NULL;
|
||||||
|
size_t plen = 0;
|
||||||
|
|
||||||
|
+ /*
|
||||||
|
+ * HvB
|
||||||
|
+ */
|
||||||
|
+ char md5salt[32];
|
||||||
|
+
|
||||||
|
if ( password == NULL )
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
@@ -185,9 +191,20 @@
|
||||||
|
fprintf(stderr, "Your c library is missing 'crypt'\n");
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
+
|
||||||
|
+ case H_MD5CRYPT: /* HvB */
|
||||||
|
+#ifdef HAVE_LIBCRYPT
|
||||||
|
+ snprintf(md5salt, sizeof(md5salt),"$1$%s", cgetSalt());
|
||||||
|
+ temp = crypt(password, md5salt);
|
||||||
|
+#else
|
||||||
|
+ fprintf(stderr, "Your c library is missing 'crypt'\n");
|
||||||
|
+#endif
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case H_CLEAR:
|
||||||
|
temp = password;
|
||||||
|
break;
|
||||||
|
+
|
||||||
|
default:
|
||||||
|
fprintf(stderr, "getHash: Unknown hash type.\n");
|
||||||
|
return NULL;
|
249
cpu-1.4.3-mod-delete.patch
Normal file
249
cpu-1.4.3-mod-delete.patch
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
diff -up cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete cpu-1.4.3/src/include/plugins/ldap/ldap.h
|
||||||
|
--- cpu-1.4.3/src/include/plugins/ldap/ldap.h.mod-delete 2003-12-30 20:22:20.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/include/plugins/ldap/ldap.h 2010-11-05 23:54:19.000000000 -0600
|
||||||
|
@@ -127,8 +127,8 @@ int ldapCat(LDAP *ld);
|
||||||
|
uid_t getNextUid(LDAP * ld);
|
||||||
|
gid_t getNextGid(LDAP * ld, ldapop_t op);
|
||||||
|
int ldapUserCheck(int mod_op, LDAP * ld);
|
||||||
|
-int ldapGroupCheck(int mod_op);
|
||||||
|
-LDAPMod ** ldapBuildListStr(int mod_op, char * mod_type, char * value,
|
||||||
|
+int ldapGroupCheck(int mod_op, LDAP * ld);
|
||||||
|
+LDAPMod ** ldapBuildListStr(LDAP * ld, int mod_op, char * mod_type, char * value,
|
||||||
|
LDAPMod ** mods);
|
||||||
|
LDAPMod ** ldapBuildList(int mod_op, char * mod_type, char ** value,
|
||||||
|
LDAPMod ** mods);
|
||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/group.c.mod-delete cpu-1.4.3/src/plugins/ldap/group.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/group.c.mod-delete 2003-10-12 17:34:59.000000000 -0600
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/group.c 2010-11-05 23:54:19.000000000 -0600
|
||||||
|
@@ -31,7 +31,7 @@ LDAPMod **groupMod = NULL;
|
||||||
|
int
|
||||||
|
ldapGroupAdd (LDAP * ld)
|
||||||
|
{
|
||||||
|
- if (ldapGroupCheck (LDAP_MOD_ADD) < 0)
|
||||||
|
+ if (ldapGroupCheck (LDAP_MOD_ADD, ld) < 0)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "ldap: ldapGroupAdd: error in ldapGroupCheck\n");
|
||||||
|
return -1;
|
||||||
|
@@ -50,7 +50,7 @@ int
|
||||||
|
ldapGroupMod (LDAP * ld)
|
||||||
|
{
|
||||||
|
char *newdn = NULL;
|
||||||
|
- if (ldapGroupCheck (LDAP_MOD_REPLACE) < 0)
|
||||||
|
+ if (ldapGroupCheck (LDAP_MOD_REPLACE, ld) < 0)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "ldap: ldapGroupMod: error in ldapGroupCheck\n");
|
||||||
|
return -1;
|
||||||
|
@@ -105,7 +105,7 @@ ldapGroupDel (LDAP * ld)
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
-ldapGroupCheck (int mod_op)
|
||||||
|
+ldapGroupCheck (int mod_op, LDAP * ld)
|
||||||
|
{
|
||||||
|
int op = 0;
|
||||||
|
if (mod_op == LDAP_MOD_ADD)
|
||||||
|
@@ -126,11 +126,11 @@ ldapGroupCheck (int mod_op)
|
||||||
|
groupMod = ldapBuildList (op, "objectClass",
|
||||||
|
globalLdap->group_object_class, groupMod);
|
||||||
|
groupMod =
|
||||||
|
- ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
|
||||||
|
+ ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), groupMod);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (globalLdap->passent->pw_passwd)
|
||||||
|
- groupMod = ldapBuildListStr (op, "userPassword",
|
||||||
|
+ groupMod = ldapBuildListStr (ld, op, "userPassword",
|
||||||
|
globalLdap->passent->pw_passwd, groupMod);
|
||||||
|
|
||||||
|
if ((int) globalLdap->passent->pw_gid > -1)
|
||||||
|
@@ -143,7 +143,7 @@ ldapGroupCheck (int mod_op)
|
||||||
|
pos = globalLdap->parse;
|
||||||
|
while (pos != NULL)
|
||||||
|
{
|
||||||
|
- groupMod = ldapBuildListStr (op, pos->attr, pos->attrval, groupMod);
|
||||||
|
+ groupMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, groupMod);
|
||||||
|
pos = pos->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c.mod-delete 2010-11-05 23:53:41.000000000 -0600
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-06 00:03:17.000000000 -0600
|
||||||
|
@@ -278,7 +278,7 @@ ldapAddList (LDAPMod ** mods)
|
||||||
|
}
|
||||||
|
|
||||||
|
LDAPMod **
|
||||||
|
-ldapBuildListStr (int mod_op, char *mod_type, char *value, LDAPMod ** mods)
|
||||||
|
+ldapBuildListStr (LDAP * ld, int mod_op, char *mod_type, char *value, LDAPMod ** mods)
|
||||||
|
{
|
||||||
|
char **temp;
|
||||||
|
|
||||||
|
@@ -286,19 +286,66 @@ ldapBuildListStr (int mod_op, char *mod_
|
||||||
|
return mods;
|
||||||
|
|
||||||
|
if (value == NULL || strlen(value) == strspn(value, " "))
|
||||||
|
- return mods;
|
||||||
|
-
|
||||||
|
- mods = ldapAddList (mods);
|
||||||
|
+ {
|
||||||
|
+ int strsize = 1;
|
||||||
|
+ char *filter = NULL;
|
||||||
|
+ int ldapres = 0;
|
||||||
|
+ int err = 0;
|
||||||
|
+
|
||||||
|
+ LDAPMessage *res[2];
|
||||||
|
+ res[1] = NULL;
|
||||||
|
+
|
||||||
|
+ strsize = strlen (mod_type) + 5;
|
||||||
|
+ filter = (char *) malloc (sizeof (char) * strsize);
|
||||||
|
+ if (filter == NULL)
|
||||||
|
+ return -1;
|
||||||
|
+ bzero (filter, strsize);
|
||||||
|
+ snprintf (filter, strsize, "(%s=*)", mod_type);
|
||||||
|
+ if (ldap_search_st (ld, globalLdap->dn, LDAP_SCOPE_BASE, filter, NULL, 0,
|
||||||
|
+ &globalLdap->timeout, res) != LDAP_SUCCESS)
|
||||||
|
+ {
|
||||||
|
+ if (ldap_get_option (ld, LDAP_OPT_ERROR_NUMBER, &err) < 0)
|
||||||
|
+ {
|
||||||
|
+ fprintf (stderr, "Error in ldap_get_option\n");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ if (err != LDAP_NO_SUCH_OBJECT)
|
||||||
|
+ {
|
||||||
|
+ CPU_ldapPerror (ld, globalLdap,
|
||||||
|
+ "ldapBuildListStr: ldap_search_st");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ ldapres = ldap_count_entries (ld, res[0]);
|
||||||
|
+ if (ldapres > 0)
|
||||||
|
+ {
|
||||||
|
+ mods = ldapAddList (mods);
|
||||||
|
+
|
||||||
|
+ mods[list_size]->mod_op = LDAP_MOD_DELETE;
|
||||||
|
+ mods[list_size]->mod_type = strdup (mod_type);
|
||||||
|
+ mods[list_size]->mod_values = NULL;
|
||||||
|
+ list_size++;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ free(filter);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ mods = ldapAddList (mods);
|
||||||
|
|
||||||
|
- temp = (char **) malloc (sizeof (char *) * 2);
|
||||||
|
- bzero (temp, sizeof (char *) * 2);
|
||||||
|
- temp[0] = value;
|
||||||
|
- temp[1] = NULL;
|
||||||
|
+ temp = (char **) malloc (sizeof (char *) * 2);
|
||||||
|
+ bzero (temp, sizeof (char *) * 2);
|
||||||
|
+ temp[0] = value;
|
||||||
|
+ temp[1] = NULL;
|
||||||
|
+
|
||||||
|
+ mods[list_size]->mod_op = mod_op;
|
||||||
|
+ mods[list_size]->mod_type = strdup (mod_type);
|
||||||
|
+ mods[list_size]->mod_values = temp;
|
||||||
|
+ list_size++;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- mods[list_size]->mod_op = mod_op;
|
||||||
|
- mods[list_size]->mod_type = strdup (mod_type);
|
||||||
|
- mods[list_size]->mod_values = temp;
|
||||||
|
- list_size++;
|
||||||
|
return mods;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/user.c.mod-delete cpu-1.4.3/src/plugins/ldap/user.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/user.c.mod-delete 2010-11-05 23:53:41.000000000 -0600
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/user.c 2010-11-05 23:54:19.000000000 -0600
|
||||||
|
@@ -251,16 +251,16 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||||
|
*/
|
||||||
|
if (op == LDAP_MOD_ADD)
|
||||||
|
{
|
||||||
|
- userMod = ldapBuildListStr (LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
|
||||||
|
+ userMod = ldapBuildListStr (ld, LDAP_MOD_ADD, "cn", ldapGetCn (), userMod);
|
||||||
|
userMod =
|
||||||
|
ldapBuildList (op, "objectClass", globalLdap->user_object_class,
|
||||||
|
userMod);
|
||||||
|
}
|
||||||
|
else if (globalLdap->passent->pw_gecos || (globalLdap->first_name && globalLdap->last_name))
|
||||||
|
- userMod = ldapBuildListStr (op, "cn", ldapGetCn (), userMod);
|
||||||
|
+ userMod = ldapBuildListStr (ld, op, "cn", ldapGetCn (), userMod);
|
||||||
|
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "uid", globalLdap->passent->pw_name, userMod);
|
||||||
|
+ ldapBuildListStr (ld, op, "uid", globalLdap->passent->pw_name, userMod);
|
||||||
|
|
||||||
|
/* do we allow duplicates ? */
|
||||||
|
if ((int) globalLdap->passent->pw_uid > -1)
|
||||||
|
@@ -433,35 +433,35 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||||
|
}
|
||||||
|
if (globalLdap->first_name)
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "givenName", globalLdap->first_name, userMod);
|
||||||
|
+ ldapBuildListStr (ld, op, "givenName", globalLdap->first_name, userMod);
|
||||||
|
|
||||||
|
if (globalLdap->last_name)
|
||||||
|
- userMod = ldapBuildListStr (op, "sn", globalLdap->last_name, userMod);
|
||||||
|
+ userMod = ldapBuildListStr (ld, op, "sn", globalLdap->last_name, userMod);
|
||||||
|
|
||||||
|
if (globalLdap->new_username)
|
||||||
|
- userMod = ldapBuildListStr (op, "uid", globalLdap->new_username, userMod);
|
||||||
|
+ userMod = ldapBuildListStr (ld, op, "uid", globalLdap->new_username, userMod);
|
||||||
|
|
||||||
|
if (globalLdap->email_address)
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "mail", globalLdap->email_address, userMod);
|
||||||
|
+ ldapBuildListStr (ld, op, "mail", globalLdap->email_address, userMod);
|
||||||
|
|
||||||
|
if (globalLdap->passent->pw_passwd)
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "userPassword", globalLdap->passent->pw_passwd,
|
||||||
|
+ ldapBuildListStr (ld, op, "userPassword", globalLdap->passent->pw_passwd,
|
||||||
|
userMod);
|
||||||
|
|
||||||
|
if (globalLdap->passent->pw_gecos)
|
||||||
|
- userMod = ldapBuildListStr (op, "gecos", globalLdap->passent->pw_gecos,
|
||||||
|
+ userMod = ldapBuildListStr (ld, op, "gecos", globalLdap->passent->pw_gecos,
|
||||||
|
userMod);
|
||||||
|
|
||||||
|
if (globalLdap->passent->pw_dir)
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "homeDirectory", globalLdap->passent->pw_dir,
|
||||||
|
+ ldapBuildListStr (ld, op, "homeDirectory", globalLdap->passent->pw_dir,
|
||||||
|
userMod);
|
||||||
|
|
||||||
|
if (globalLdap->passent->pw_shell)
|
||||||
|
userMod =
|
||||||
|
- ldapBuildListStr (op, "loginShell", globalLdap->passent->pw_shell,
|
||||||
|
+ ldapBuildListStr (ld, op, "loginShell", globalLdap->passent->pw_shell,
|
||||||
|
userMod);
|
||||||
|
if ((int) globalLdap->passent->sp_lstchg != -10)
|
||||||
|
userMod = ldapBuildListInt (op, "shadowLastChange",
|
||||||
|
@@ -501,7 +501,7 @@ ldapUserCheck (int mod_op, LDAP * ld)
|
||||||
|
pos = globalLdap->parse;
|
||||||
|
while (pos != NULL)
|
||||||
|
{
|
||||||
|
- userMod = ldapBuildListStr (op, pos->attr, pos->attrval, userMod);
|
||||||
|
+ userMod = ldapBuildListStr (ld, op, pos->attr, pos->attrval, userMod);
|
||||||
|
pos = pos->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff -up cpu-1.4.3/src/util/parser.c.mod-delete cpu-1.4.3/src/util/parser.c
|
||||||
|
--- cpu-1.4.3/src/util/parser.c.mod-delete 2010-11-07 16:05:19.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/util/parser.c 2010-11-07 16:13:07.000000000 -0700
|
||||||
|
@@ -290,11 +290,7 @@
|
||||||
|
p->cont = true;
|
||||||
|
token = getToken(&cart[i], delim);
|
||||||
|
if ( token == NULL )
|
||||||
|
- {
|
||||||
|
- printf("%d: Malformed file, cannot continue parsing.\n",
|
||||||
|
- __LINE__);
|
||||||
|
- return NULL;
|
||||||
|
- }
|
||||||
|
+ token = strdup ("");
|
||||||
|
}
|
||||||
|
p->attrval = delWhite(&token);
|
||||||
|
pos = parse;
|
51
cpu-1.4.3-read.patch
Normal file
51
cpu-1.4.3-read.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/util/parser.c mezzanine_patched_cpu-1.4.3/src/util/parser.c
|
||||||
|
--- cpu-1.4.3/src/util/parser.c 2003-10-22 17:17:15.000000000 -0400
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/util/parser.c 2007-07-24 15:17:47.000000000 -0400
|
||||||
|
@@ -57,6 +57,8 @@
|
||||||
|
{
|
||||||
|
int fd = 0;
|
||||||
|
ssize_t retval = 0;
|
||||||
|
+ ssize_t nread;
|
||||||
|
+ ssize_t bufsize;
|
||||||
|
void * temp;
|
||||||
|
struct stat buf;
|
||||||
|
|
||||||
|
@@ -75,14 +77,31 @@
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- temp = malloc(buf.st_size);
|
||||||
|
- if ( temp == NULL )
|
||||||
|
- return NULL;
|
||||||
|
- bzero(temp, buf.st_size);
|
||||||
|
-
|
||||||
|
- retval = read(fd, temp, buf.st_size);
|
||||||
|
+ for (nread = 0, temp = NULL, bufsize = 4096; ;bufsize *= 2)
|
||||||
|
+ {
|
||||||
|
+ void *temp2;
|
||||||
|
+ ssize_t rbufsize;
|
||||||
|
+ temp2 = malloc(bufsize);
|
||||||
|
+ if ( temp2 == NULL )
|
||||||
|
+ {
|
||||||
|
+ perror(filename);
|
||||||
|
+ return NULL;
|
||||||
|
+ }
|
||||||
|
+ bzero(temp2, bufsize);
|
||||||
|
+ if (temp)
|
||||||
|
+ {
|
||||||
|
+ memcpy(temp2, temp, nread);
|
||||||
|
+ free(temp);
|
||||||
|
+ }
|
||||||
|
+ temp = temp2;
|
||||||
|
+ rbufsize = bufsize - nread;
|
||||||
|
+ retval = read(fd, temp+nread, rbufsize);
|
||||||
|
+ nread += retval;
|
||||||
|
+ if (retval < rbufsize)
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
close(fd);
|
||||||
|
- if ( retval != buf.st_size )
|
||||||
|
+ if (buf.st_size && nread != buf.st_size )
|
||||||
|
printf("Hmm, didn't read all wanted data. Continuing\n");
|
||||||
|
if ( retval < 0 )
|
||||||
|
return NULL;
|
35
cpu-1.4.3-rhel5.patch
Normal file
35
cpu-1.4.3-rhel5.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/commandline.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/commandline.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/commandline.c 2004-01-12 00:31:02.000000000 -0500
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/commandline.c 2007-07-24 14:55:44.000000000 -0400
|
||||||
|
@@ -83,7 +83,7 @@
|
||||||
|
if (passent == NULL)
|
||||||
|
return -1;
|
||||||
|
bzero (passent, sizeof (struct cpass));
|
||||||
|
- (int) passent->sp_lstchg = passent->sp_min = passent->sp_max = -10;
|
||||||
|
+ passent->sp_lstchg = (int)(passent->sp_min = passent->sp_max = -10);
|
||||||
|
passent->sp_warn = passent->sp_inact = passent->sp_expire = -10;
|
||||||
|
passent->sp_flag = -10;
|
||||||
|
passent->pw_gid = -10;
|
||||||
|
diff -Nur -x '*.orig' -x '*.rej' cpu-1.4.3/src/plugins/ldap/ld.c mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c 2004-01-11 23:47:37.000000000 -0500
|
||||||
|
+++ mezzanine_patched_cpu-1.4.3/src/plugins/ldap/ld.c 2007-07-24 14:56:36.000000000 -0400
|
||||||
|
@@ -803,11 +803,14 @@
|
||||||
|
return -10;
|
||||||
|
if (gid != NULL)
|
||||||
|
{
|
||||||
|
- gid = ldap_get_values (ld, pos, gid)[0];
|
||||||
|
- if (gid != NULL)
|
||||||
|
- return atoi (gid);
|
||||||
|
- else
|
||||||
|
- return -10;
|
||||||
|
+ char **gidval = ldap_get_values (ld, pos, gid);
|
||||||
|
+ int val;
|
||||||
|
+
|
||||||
|
+ if (gidval == NULL)
|
||||||
|
+ return -10;
|
||||||
|
+ val = atoi (*gidval);
|
||||||
|
+ ldap_value_free (gidval);
|
||||||
|
+ return val;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return -10;
|
12
cpu-1.4.3-rhel6.patch
Normal file
12
cpu-1.4.3-rhel6.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up cpu-1.4.3/src/util/fileaction.c.rhel6 cpu-1.4.3/src/util/fileaction.c
|
||||||
|
--- cpu-1.4.3/src/util/fileaction.c.rhel6 2003-02-17 16:25:37.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/util/fileaction.c 2013-02-01 16:09:46.762978006 -0700
|
||||||
|
@@ -197,7 +197,7 @@ copy (char * directory, char * newdirect
|
||||||
|
}
|
||||||
|
close (fd1);
|
||||||
|
|
||||||
|
- if ((fd2 = open (homefile, O_CREAT | O_EXCL | O_WRONLY)) == -1)
|
||||||
|
+ if ((fd2 = open (homefile, O_CREAT | O_EXCL | O_WRONLY, S_IRWXU)) == -1)
|
||||||
|
{
|
||||||
|
perror ("open");
|
||||||
|
free (data);
|
115
cpu-1.4.3-supp-groups.patch
Normal file
115
cpu-1.4.3-supp-groups.patch
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/ld.c.supp-groups cpu-1.4.3/src/plugins/ldap/ld.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/ld.c.supp-groups 2010-11-07 19:00:21.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/ld.c 2010-11-07 18:56:18.000000000 -0700
|
||||||
|
@@ -29,6 +29,7 @@
|
||||||
|
|
||||||
|
gid_t getlGid (LDAP * ld, char *groupn);
|
||||||
|
char *checkSupGroups (LDAP * ld);
|
||||||
|
+void getSupGroups (LDAP * ld, char *uname);
|
||||||
|
void rmUsrFrmOldSupGrp (LDAP * ld, char *uname);
|
||||||
|
int checkIsPrimaryGroup (LDAP * ld);
|
||||||
|
int groupExists (LDAP * ld, int cgid);
|
||||||
|
@@ -193,6 +194,7 @@ ldapOperation (ldapop_t optype)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ getSupGroups (ld, globalLdap->passent->pw_name);
|
||||||
|
tstr = NULL;
|
||||||
|
if ((tstr = checkSupGroups (ld)) != NULL)
|
||||||
|
{
|
||||||
|
@@ -755,6 +757,65 @@ checkSupGroups (LDAP * ld)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
+void
|
||||||
|
+getSupGroups (LDAP * ld, char *uname)
|
||||||
|
+{
|
||||||
|
+ LDAPMessage *res[2];
|
||||||
|
+ LDAPMessage *pos;
|
||||||
|
+ int filtsize = 0;
|
||||||
|
+ struct timeval timeout;
|
||||||
|
+ char **vals;
|
||||||
|
+ char *filter = NULL;
|
||||||
|
+ char *temp;
|
||||||
|
+ int num_tokens = 0;
|
||||||
|
+ char *attrs[7] = {
|
||||||
|
+ "cn",
|
||||||
|
+ NULL
|
||||||
|
+ };
|
||||||
|
+
|
||||||
|
+ if (globalLdap->memberUid != NULL)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ timeout = globalLdap->timeout;
|
||||||
|
+ res[1] = NULL;
|
||||||
|
+
|
||||||
|
+ temp = cfg_get_str ("LDAP", "GROUP_FILTER");
|
||||||
|
+ if (temp == NULL)
|
||||||
|
+ temp = strdup ("(objectClass=PosixGroup)");
|
||||||
|
+ filtsize = strlen (temp) + strlen (uname) + 18;
|
||||||
|
+ filter = (char *) malloc (sizeof (char) * filtsize);
|
||||||
|
+ bzero (filter, filtsize);
|
||||||
|
+
|
||||||
|
+ snprintf (filter, filtsize, "(&%s (memberUid=%s))", temp, uname);
|
||||||
|
+ if (ldap_search_st (ld, globalLdap->group_base, LDAP_SCOPE_SUBTREE,
|
||||||
|
+ filter, attrs, 0, &timeout, res) != LDAP_SUCCESS)
|
||||||
|
+ {
|
||||||
|
+ Free (filter);
|
||||||
|
+ CPU_ldapPerror (ld, globalLdap, "getSupGroups: ldap_search_st");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ free (filter);
|
||||||
|
+ if (ldap_count_entries (ld, res[0]) < 1)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ for (pos = ldap_first_entry (ld, res[0]); pos != NULL;
|
||||||
|
+ pos = ldap_next_entry (ld, pos))
|
||||||
|
+ {
|
||||||
|
+ if ((vals = ldap_get_values (ld, pos, "cn")) != NULL)
|
||||||
|
+ {
|
||||||
|
+ if (vals[0] != NULL)
|
||||||
|
+ {
|
||||||
|
+ globalLdap->memberUid = (char **)
|
||||||
|
+ realloc (globalLdap->memberUid,
|
||||||
|
+ sizeof(char*)*((num_tokens+1)*4));
|
||||||
|
+ globalLdap->memberUid[num_tokens] = strdup(vals[0]);
|
||||||
|
+ num_tokens++;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ globalLdap->memberUid[num_tokens] = NULL;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
int
|
||||||
|
groupExists (LDAP * ld, int cgid)
|
||||||
|
{
|
||||||
|
diff -up cpu-1.4.3/src/plugins/ldap/commandline.c.supp-groups cpu-1.4.3/src/plugins/ldap/commandline.c
|
||||||
|
--- cpu-1.4.3/src/plugins/ldap/commandline.c.supp-groups 2010-11-07 20:45:35.000000000 -0700
|
||||||
|
+++ cpu-1.4.3/src/plugins/ldap/commandline.c 2010-11-07 20:45:20.000000000 -0700
|
||||||
|
@@ -175,15 +175,20 @@
|
||||||
|
if (isalnum ((int)optarg[0]))
|
||||||
|
gtemp = strdup (optarg);
|
||||||
|
if (gtemp == NULL)
|
||||||
|
- return -1;
|
||||||
|
- while (gtemp != NULL && *gtemp)
|
||||||
|
- {
|
||||||
|
+ {
|
||||||
|
globalLdap->memberUid =
|
||||||
|
(char **) realloc (globalLdap->memberUid,
|
||||||
|
sizeof(char*)*((num_tokens+1)*4));
|
||||||
|
- globalLdap->memberUid[num_tokens] = getToken(>emp,",");
|
||||||
|
- num_tokens++;
|
||||||
|
- }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ while (gtemp != NULL && *gtemp)
|
||||||
|
+ {
|
||||||
|
+ globalLdap->memberUid =
|
||||||
|
+ (char **) realloc (globalLdap->memberUid,
|
||||||
|
+ sizeof(char*)*((num_tokens+1)*4));
|
||||||
|
+ globalLdap->memberUid[num_tokens] = getToken(>emp,",");
|
||||||
|
+ num_tokens++;
|
||||||
|
+ }
|
||||||
|
globalLdap->memberUid[num_tokens] = NULL;
|
||||||
|
break;
|
||||||
|
}
|
BIN
cpu-1.4.3.tar.bz2
(Stored with Git LFS)
Normal file
BIN
cpu-1.4.3.tar.bz2
(Stored with Git LFS)
Normal file
Binary file not shown.
115
cpu.spec
Normal file
115
cpu.spec
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
# $Id: cpu.spec,v 1.1 2016/02/04 12:17:43 vip-ire Exp $
|
||||||
|
|
||||||
|
Summary: Pluggable utility to administer authentication data
|
||||||
|
Name: cpu
|
||||||
|
Version: 1.4.3
|
||||||
|
Release: 14%{?dist}
|
||||||
|
License: GPL
|
||||||
|
Group: System Environment/Base
|
||||||
|
Source: cpu-1.4.3.tar.bz2
|
||||||
|
Patch0: cpu-1.4.3-doc_install.patch
|
||||||
|
Patch1: cpu-1.4.3-rhel5.patch
|
||||||
|
Patch2: cpu-1.4.3-md5crypt.patch
|
||||||
|
Patch3: cpu-1.4.3-read.patch
|
||||||
|
Patch4: cpu-1.4.3-fix-cn.patch
|
||||||
|
Patch5: cpu-1.4.3-empty-attr.patch
|
||||||
|
Patch6: cpu-1.4.3-mod-delete.patch
|
||||||
|
Patch7: cpu-1.4.3-supp-groups.patch
|
||||||
|
Patch8: cpu-1.4.3-gid-not-supp.patch
|
||||||
|
Patch9: cpu-1.4.3-rhel6.patch
|
||||||
|
Prefix: %{_prefix}
|
||||||
|
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-root
|
||||||
|
BuildRequires: openldap-devel
|
||||||
|
|
||||||
|
%description
|
||||||
|
CPU is a utility consisting of a set of plugins that allow an administrator to
|
||||||
|
administer a wide range of different authentication backends. Current plugins
|
||||||
|
include support for LDAP and a partially completed flat file plugin.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -p1
|
||||||
|
%patch4 -p1
|
||||||
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
|
%patch7 -p1
|
||||||
|
%patch8 -p1
|
||||||
|
%patch9 -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
CFLAGS="%{?cflags:%{cflags}}%{!?cflags:$RPM_OPT_FLAGS}"
|
||||||
|
CXXFLAGS="%{?cxxflags:%{cxxflags}}%{!?cflags:$RPM_OPT_FLAGS}"
|
||||||
|
export CFLAGS CXXFLAGS
|
||||||
|
|
||||||
|
%configure %{?acflags}
|
||||||
|
%{__make} %{?mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%{__make} install DESTDIR=$RPM_BUILD_ROOT %{?mflags_install}
|
||||||
|
rm $RPM_BUILD_ROOT/usr/share/cpu.conf.doc
|
||||||
|
rm $RPM_BUILD_ROOT/usr/share/test.ldif
|
||||||
|
|
||||||
|
%clean
|
||||||
|
test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%doc README INSTALL COPYING TODO AUTHORS NEWS ChangeLog doc
|
||||||
|
%config %attr(0600, root,root) /etc/cpu.conf
|
||||||
|
%{_libdir}/*
|
||||||
|
/usr/sbin/cpu
|
||||||
|
%doc /usr/share/man/man5/*
|
||||||
|
%doc /usr/share/man/man8/*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Jul 12 2023 BogusDateBot
|
||||||
|
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
|
||||||
|
by assuming the date is correct and changing the weekday.
|
||||||
|
|
||||||
|
* Fri Feb 1 2013 Shad L. Lords <slords@mail.com> 1.4.3-14.sme
|
||||||
|
- Param fix so build on rhel6 works [SME: 7271]
|
||||||
|
|
||||||
|
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-13.sme
|
||||||
|
- user gid shouldn't be part of supplemental groups [SME: 6353]
|
||||||
|
|
||||||
|
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-12.sme
|
||||||
|
- Retrieve supplimential groups if not specified [SME: 6347]
|
||||||
|
- Fix memory leak introduced in revision 9 [SME: 6342]
|
||||||
|
|
||||||
|
* Sun Nov 7 2010 Shad L. Lords <slords@mail.com> 1.4.3-11.sme
|
||||||
|
- Treat null attribs in extra file like empty string [SME: 6342]
|
||||||
|
|
||||||
|
* Sat Nov 6 2010 Shad L. Lords <slords@mail.com> 1.4.3-10.sme
|
||||||
|
- Object might not exist yet which isn't an error [SME: 6342]
|
||||||
|
|
||||||
|
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-9.sme
|
||||||
|
- Check for attribute before deleting [SME: 6342]
|
||||||
|
|
||||||
|
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-8.sme
|
||||||
|
- If empty value is passed in assume that means delete [SME: 6342]
|
||||||
|
|
||||||
|
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-7.sme
|
||||||
|
- Ignore attributes that have empty attr [SME: 6341]
|
||||||
|
|
||||||
|
* Fri Nov 5 2010 Shad L. Lords <slords@mail.com> 1.4.3-6.sme
|
||||||
|
- Use gecos for cn if available, also modify cn if possible [SME: 6338]
|
||||||
|
|
||||||
|
* Fri Aug 03 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-5.sme
|
||||||
|
- Read LDIF files until eof, rather than use stat size. Allows
|
||||||
|
read from, e.g. /dev/stdin.
|
||||||
|
|
||||||
|
* Fri Aug 03 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-4.sme
|
||||||
|
- Add md5crypt support (from sourceforge).
|
||||||
|
|
||||||
|
* Tue Jul 24 2007 Charlie Brady <charlie_brady@mitel.com> 1.4.3-3.sme
|
||||||
|
- Portability fixes to allow building on RHEL5/CentOS5.
|
||||||
|
|
||||||
|
* Wed Sep 27 2006 Charlie Brady <charlie_brady@mitel.com> 1.4.3-2.sme
|
||||||
|
- Update file list, and remove world read from cpu.conf.
|
||||||
|
|
||||||
|
* Tue Sep 26 2006 Charlie Brady <charlieb@e-smith.com>
|
||||||
|
- Initial
|
||||||
|
|
Loading…
Reference in New Issue
Block a user