[Fedora-directory-commits] ldapserver/ldap/servers/slapd pw_mgmt.c, 1.6, 1.6.2.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv5623
Modified Files:
Tag: Directory71RtmBranch
pw_mgmt.c
Log Message:
Resolves: #229513
Summary: CRM #1160370 RHDS does not reset passwordRetryCount to 0 upon a successful BIND
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: pw_mgmt.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/pw_mgmt.c,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- pw_mgmt.c 19 Apr 2005 22:07:36 -0000 1.6
+++ pw_mgmt.c 22 Dec 2007 00:32:08 -0000 1.6.2.1
@@ -67,9 +67,9 @@
pwpolicy = new_passwdPolicy(pb, dn);
/* after the user binds with authentication, clear the retry count */
- if ( pwpolicy->pw_lockout == 1)
+ if (pwpolicy->pw_lockout == 1)
{
- if(slapi_entry_attr_get_int( e, "passwordRetryCount") > 0)
+ if(slapi_entry_attr_get_int(e, "passwordRetryCount") > 0)
{
slapi_mods_add_string(&smods, LDAP_MOD_REPLACE, "passwordRetryCount", "0");
}
@@ -90,12 +90,14 @@
pw_exp_date = time_plus_sec ( cur_time,
pwpolicy->pw_maxage );
- timestring = format_genTime (pw_exp_date);
+ timestring = format_genTime (pw_exp_date);
slapi_mods_add_string(&smods, LDAP_MOD_REPLACE, "passwordExpirationTime", timestring);
slapi_ch_free((void **)×tring);
slapi_mods_add_string(&smods, LDAP_MOD_REPLACE, "passwordExpWarned", "0");
pw_apply_mods(dn, &smods);
+ } else if (pwpolicy->pw_lockout == 1) {
+ pw_apply_mods(dn, &smods);
}
slapi_mods_done(&smods);
delete_passwdPolicy(&pwpolicy);
@@ -104,7 +106,7 @@
pw_exp_date = parse_genTime(passwordExpirationTime);
- slapi_ch_free((void**)&passwordExpirationTime);
+ slapi_ch_free((void**)&passwordExpirationTime);
/* Check if password has been reset */
if ( pw_exp_date == NO_TIME ) {
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/servers/slapd log.h, 1.4, 1.4.2.1 log.c, 1.6.2.4, 1.6.2.5
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv11544
Modified Files:
Tag: Directory71RtmBranch
log.h log.c
Log Message:
Resolves: #202890
Summary: 202890: Crash at startup with 0kB rotationinfo files
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: log.h
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/log.h,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- log.h 19 Apr 2005 22:07:36 -0000 1.4
+++ log.h 21 Dec 2007 21:35:08 -0000 1.4.2.1
@@ -69,6 +69,7 @@
#define LOG_EXCEEDED 2 /*err: > max logs allowed */
#define LOG_ROTATE 3 /*ok; go to the next log */
#define LOG_UNABLE_TO_OPENFILE 4
+#define LOG_DONE 5
#define LOG_UNIT_UNKNOWN 0
#define LOG_UNIT_MONTHS 1
@@ -91,6 +92,8 @@
#define LOG_BUFFER_MAXSIZE 512 * 1024
+#define PREVLOGFILE "Previous Log File:"
+
/* see log.c for why this is done */
#ifdef XP_WIN32
typedef FILE *LOGFD;
Index: log.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/log.c,v
retrieving revision 1.6.2.4
retrieving revision 1.6.2.5
diff -u -r1.6.2.4 -r1.6.2.5
--- log.c 19 Mar 2006 18:37:45 -0000 1.6.2.4
+++ log.c 21 Dec 2007 21:35:08 -0000 1.6.2.5
@@ -58,6 +58,9 @@
#include "proto-ntutil.h"
extern HANDLE hSlapdEventSource;
extern LPTSTR pszServerName;
+#define _PSEP '\\'
+#else
+#define _PSEP '/'
#endif
/**************************************************************************
* GLOBALS, defines, and ...
@@ -114,12 +117,14 @@
static int log__error_rotationinfof(char *pathname);
static int log__audit_rotationinfof(char *pathname);
static int log__extract_logheader (FILE *fp, long *f_ctime, int *f_size);
+static int log__check_prevlogs (FILE *fp, char *filename);
static int log__getfilesize(LOGFD fp);
static int log__enough_freespace(char *path);
static int vslapd_log_error(LOGFD fp, char *subsystem, char *fmt, va_list ap );
static int vslapd_log_access(char *fmt, va_list ap );
static void log_convert_time (time_t ctime, char *tbuf, int type);
+static time_t log_reverse_convert_time (char *tbuf);
static LogBufferInfo *log_create_buffer(size_t sz);
static void log_append_buffer2(time_t tnl, LogBufferInfo *lbi, char *msg1, size_t size1, char *msg2, size_t size2);
static void log_flush_buffer(LogBufferInfo *lbi, int type, int sync_now);
@@ -2128,8 +2133,8 @@
logp = loginfo.log_access_logchain;
while ( logp) {
log_convert_time (logp->l_ctime, tbuf, 1 /*short*/);
- PR_snprintf(buffer, sizeof(buffer), "LOGINFO:Previous Log File:%s.%s (%lu) (%u)\n",
- loginfo.log_access_file, tbuf, logp->l_ctime, logp->l_size);
+ PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%u)\n",
+ PREVLOGFILE, loginfo.log_access_file, tbuf, logp->l_ctime, logp->l_size);
LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
logp = logp->l_next;
}
@@ -2429,6 +2434,130 @@
return 1;
}
+
+#define ERRORSLOG 1
+#define ACCESSLOG 2
+#define AUDITLOG 3
+
+static int
+log__fix_rotationinfof(char *pathname)
+{
+ char *logsdir = NULL;
+ time_t now;
+ PRDir *dirptr = NULL;
+ PRDirEntry *dirent = NULL;
+ PRDirFlags dirflags = PR_SKIP_BOTH & PR_SKIP_HIDDEN;
+ char *log_type = NULL;
+ int log_type_id;
+ int rval = LOG_ERROR;
+ char *p;
+
+ /* rotation info file is broken; can't trust the contents */
+ time (&now);
+ loginfo.log_error_ctime = now;
+ logsdir = slapi_ch_strdup(pathname);
+ p = strrchr(logsdir, _PSEP);
+ if (NULL == p) /* pathname is not path/filename.rotationinfo; do nothing */
+ goto done;
+
+ *p = '\0';
+ log_type = ++p;
+ p = strchr(log_type, '.');
+ if (NULL == p) /* file is not rotationinfo; do nothing */
+ goto done;
+ *p = '\0';
+
+ if (0 == strcmp(log_type, "errors"))
+ log_type_id = ERRORSLOG;
+ else if (0 == strcmp(log_type, "access"))
+ log_type_id = ACCESSLOG;
+ else if (0 == strcmp(log_type, "audit"))
+ log_type_id = AUDITLOG;
+ else
+ goto done; /* file is not errors nor access nor audit; do nothing */
+
+ if (!(dirptr = PR_OpenDir(logsdir)))
+ goto done;
+
+ switch (log_type_id) {
+ case ERRORSLOG:
+ loginfo.log_numof_error_logs = 0;
+ loginfo.log_error_logchain = NULL;
+ break;
+ case ACCESSLOG:
+ loginfo.log_numof_access_logs = 0;
+ loginfo.log_access_logchain = NULL;
+ break;
+ case AUDITLOG:
+ loginfo.log_numof_audit_logs = 0;
+ loginfo.log_audit_logchain = NULL;
+ break;
+ }
+ /* read the directory entries into a linked list */
+ for (dirent = PR_ReadDir(dirptr, dirflags); dirent ;
+ dirent = PR_ReadDir(dirptr, dirflags)) {
+ if (0 == strcmp(log_type, dirent->name)) {
+ switch (log_type_id) {
+ case ERRORSLOG:
+ loginfo.log_numof_error_logs++;
+ break;
+ case ACCESSLOG:
+ loginfo.log_numof_access_logs++;
+ break;
+ case AUDITLOG:
+ loginfo.log_numof_audit_logs++;
+ break;
+ }
+ } else if (0 == strncmp(log_type, dirent->name, strlen(log_type)) &&
+ (p = strrchr(dirent->name, '.')) != NULL &&
+ 15 == strlen(++p) &&
+ NULL != strchr(p, '-')) { /* e.g., errors.20051123-165135 */
+ struct logfileinfo *logp;
+ char *q;
+ int ignoreit = 0;
+
+ for (q = p; q && *q; q++) {
+ if (*q != '-' && !isdigit(*q))
+ ignoreit = 1;
+ }
+ if (ignoreit)
+ continue;
+
+ logp = (struct logfileinfo *) slapi_ch_malloc (sizeof (struct logfileinfo));
+ logp->l_ctime = log_reverse_convert_time(p);
+ switch (log_type_id) {
+ case ERRORSLOG:
+ logp->l_size = loginfo.log_error_maxlogsize; /* dummy */
+ logp->l_next = loginfo.log_error_logchain;
+ loginfo.log_error_logchain = logp;
+ loginfo.log_numof_error_logs++;
+ break;
+ case ACCESSLOG:
+ logp->l_size = loginfo.log_access_maxlogsize;
+ logp->l_next = loginfo.log_access_logchain;
+ loginfo.log_access_logchain = logp;
+ loginfo.log_numof_access_logs++;
+ break;
+ case AUDITLOG:
+ logp->l_size =loginfo.log_audit_maxlogsize;
+ logp->l_next = loginfo.log_audit_logchain;
+ loginfo.log_audit_logchain = logp;
+ loginfo.log_numof_audit_logs++;
+ break;
+ }
+ }
+ }
+ rval = LOG_SUCCESS;
+done:
+ if (NULL != dirptr)
+ PR_CloseDir(dirptr);
+ slapi_ch_free_string(&logsdir);
+ return rval;
+}
+#undef ERRORSLOG
+#undef ACCESSLOG
+#undef AUDITLOG
+
/******************************************************************************
* log__access_rotationinfof
*
@@ -2445,8 +2574,8 @@
int main_log = 1;
time_t now;
FILE *fp;
+ int rval, logfile_type = LOGFILE_REOPENED;
-
/*
** Okay -- I confess, we want to use NSPR calls but I want to
** use fgets and not use PR_Read() and implement a complicated
@@ -2464,7 +2593,7 @@
** We have reopened the log access file. Now we need to read the
** log file info and update the values.
*/
- while (log__extract_logheader(fp, &f_ctime, &f_size) == LOG_CONTINUE) {
+ while ((rval = log__extract_logheader(fp, &f_ctime, &f_size)) == LOG_CONTINUE) {
/* first we would get the main log info */
if (f_ctime == 0 && f_size == 0)
continue;
@@ -2497,16 +2626,94 @@
}
loginfo.log_numof_access_logs++;
}
+ if (LOG_DONE == rval)
+ rval = log__check_prevlogs(fp, pathname);
+ fclose (fp);
+
+ if (LOG_ERROR == rval)
+ if (LOG_SUCCESS == log__fix_rotationinfof(pathname))
+ logfile_type = LOGFILE_NEW;
/* Check if there is a rotation overdue */
if (loginfo.log_access_rotationsync_enabled &&
loginfo.log_access_rotationunit != LOG_UNIT_HOURS &&
loginfo.log_access_rotationunit != LOG_UNIT_MINS &&
- loginfo.log_access_ctime < loginfo.log_access_rotationsyncclock - loginfo.log_access_rotationtime_secs) {
- loginfo.log_access_rotationsyncclock -= loginfo.log_access_rotationtime_secs;
+ loginfo.log_access_ctime < loginfo.log_access_rotationsyncclock - PR_ABS(loginfo.log_access_rotationtime_secs)) {
+ loginfo.log_access_rotationsyncclock -= PR_ABS(loginfo.log_access_rotationtime_secs);
}
- fclose (fp);
- return LOGFILE_REOPENED;
+ return logfile_type;
+}
+
+/*
+* log__check_prevlogs
+*
+* check if a given prev log file (e.g., /opt/fedora-ds/slapd-fe/logs/errors.20051201-101347)
+* is found in the rotationinfo file.
+*/
+static int
+log__check_prevlogs (FILE *fp, char *pathname)
+{
+ char buf[BUFSIZ], *p;
+ char *logsdir = NULL;
+ int rval = LOG_CONTINUE;
+ char *log_type = NULL;
+ PRDir *dirptr = NULL;
+ PRDirEntry *dirent = NULL;
+ PRDirFlags dirflags = PR_SKIP_BOTH & PR_SKIP_HIDDEN;
+
+ logsdir = slapi_ch_strdup(pathname);
+ p = strrchr(logsdir, _PSEP);
+ if (NULL == p) /* pathname is not path/filename.rotationinfo; do nothing */
+ goto done;
+
+ *p = '\0';
+ log_type = ++p;
+ p = strchr(log_type, '.');
+ if (NULL == p) /* file is not rotationinfo; do nothing */
+ goto done;
+ *p = '\0';
+
+ if (0 != strcmp(log_type, "errors") &&
+ 0 != strcmp(log_type, "access") &&
+ 0 != strcmp(log_type, "audit"))
+ goto done; /* file is not errors nor access nor audit; do nothing */
+
+ if (!(dirptr = PR_OpenDir(logsdir)))
+ goto done;
+
+ for (dirent = PR_ReadDir(dirptr, dirflags); dirent ;
+ dirent = PR_ReadDir(dirptr, dirflags)) {
+ if (0 == strncmp(log_type, dirent->name, strlen(log_type)) &&
+ (p = strrchr(dirent->name, '.')) != NULL &&
+ 15 == strlen(++p) &&
+ NULL != strchr(p, '-')) { /* e.g., errors.20051123-165135 */
+ char *q;
+ int ignoreit = 0;
+
+ for (q = p; q && *q; q++) {
+ if (*q != '-' && !isdigit(*q))
+ ignoreit = 1;
+ }
+ if (ignoreit)
+ continue;
+
+ fseek(fp, 0 ,SEEK_SET);
+ buf[BUFSIZ-1] = '\0';
+ while (fgets(buf, BUFSIZ - 1, fp)) {
+ if (strstr(buf, dirent->name)) {
+ rval = LOG_CONTINUE; /* found in .rotationinfo */
+ continue;
+ }
+ }
+ rval = LOG_ERROR; /* not found in .rotationinfo */
+ break;
+ }
+ }
+done:
+ if (NULL != dirptr)
+ PR_CloseDir(dirptr);
+ slapi_ch_free_string(&logsdir);
+ return rval;
}
/******************************************************************************
@@ -2528,8 +2735,9 @@
if ( fp == NULL)
return LOG_ERROR;
- if (fgets(buf, BUFSIZ, fp) == NULL) {
- return LOG_ERROR;
+ buf[BUFSIZ-1] = '\0'; /* for safety */
+ if (fgets(buf, BUFSIZ - 1, fp) == NULL) {
+ return LOG_DONE;
}
if ((p=strstr(buf, "LOGINFO")) == NULL) {
@@ -2568,6 +2776,23 @@
/* Now p must hold the size value */
*f_size = atoi(p);
+ /* check if the Previous Log file really exists */
+ if ((p = strstr(buf, PREVLOGFILE)) != NULL) {
+ p += strlen(PREVLOGFILE);
+ s = strchr(p, ' ');
+ if (NULL == s) {
+ s = strchr(p, '(');
+ if (NULL != s) {
+ *s = '\0';
+ }
+ } else {
+ *s = '\0';
+ }
+ if (PR_SUCCESS != PR_Access(p, PR_ACCESS_EXISTS)) {
+ return LOG_ERROR;
+ }
+ }
+
return LOG_CONTINUE;
}
@@ -2719,13 +2944,17 @@
default:
return NULL;
}
- list = (char **) slapi_ch_calloc(1, num * sizeof(char *));
+ list = (char **) slapi_ch_calloc(1, (num + 1) * sizeof(char *));
i = 0;
while (logp) {
log_convert_time (logp->l_ctime, tbuf, 1 /*short */);
PR_snprintf(buf, sizeof(buf), "%s.%s", file, tbuf);
list[i] = slapi_ch_strdup(buf);
i++;
+ if (i == num) { /* mismatch b/w num and logchain;
+ cut the chain and save the process */
+ break;
+ }
logp = logp->l_next;
}
list[i] = NULL;
@@ -3066,7 +3295,7 @@
int main_log = 1;
time_t now;
FILE *fp;
-
+ int rval, logfile_type = LOGFILE_REOPENED;
/*
** Okay -- I confess, we want to use NSPR calls but I want to
@@ -3085,7 +3314,7 @@
** We have reopened the log error file. Now we need to read the
** log file info and update the values.
*/
- while (log__extract_logheader(fp, &f_ctime, &f_size) == LOG_CONTINUE) {
+ while ((rval = log__extract_logheader(fp, &f_ctime, &f_size)) == LOG_CONTINUE) {
/* first we would get the main log info */
if (f_ctime == 0 && f_size == 0)
continue;
@@ -3118,17 +3347,23 @@
}
loginfo.log_numof_error_logs++;
}
+ if (LOG_DONE == rval)
+ rval = log__check_prevlogs(fp, pathname);
+ fclose (fp);
+
+ if (LOG_ERROR == rval)
+ if (LOG_SUCCESS == log__fix_rotationinfof(pathname))
+ logfile_type = LOGFILE_NEW;
/* Check if there is a rotation overdue */
if (loginfo.log_error_rotationsync_enabled &&
loginfo.log_error_rotationunit != LOG_UNIT_HOURS &&
loginfo.log_error_rotationunit != LOG_UNIT_MINS &&
- loginfo.log_error_ctime < loginfo.log_error_rotationsyncclock - loginfo.log_error_rotationtime_secs) {
- loginfo.log_error_rotationsyncclock -= loginfo.log_error_rotationtime_secs;
+ loginfo.log_error_ctime < loginfo.log_error_rotationsyncclock - PR_ABS(loginfo.log_error_rotationtime_secs)) {
+ loginfo.log_error_rotationsyncclock -= PR_ABS(loginfo.log_error_rotationtime_secs);
}
- fclose (fp);
- return LOGFILE_REOPENED;
+ return logfile_type;
}
/******************************************************************************
@@ -3147,7 +3382,7 @@
int main_log = 1;
time_t now;
FILE *fp;
-
+ int rval, logfile_type = LOGFILE_REOPENED;
/*
** Okay -- I confess, we want to use NSPR calls but I want to
@@ -3166,7 +3401,7 @@
** We have reopened the log audit file. Now we need to read the
** log file info and update the values.
*/
- while (log__extract_logheader(fp, &f_ctime, &f_size) == LOG_CONTINUE) {
+ while ((rval = log__extract_logheader(fp, &f_ctime, &f_size)) == LOG_CONTINUE) {
/* first we would get the main log info */
if (f_ctime == 0 && f_size == 0)
continue;
@@ -3199,17 +3434,23 @@
}
loginfo.log_numof_audit_logs++;
}
+ if (LOG_DONE == rval)
+ rval = log__check_prevlogs(fp, pathname);
+ fclose (fp);
+
+ if (LOG_ERROR == rval)
+ if (LOG_SUCCESS == log__fix_rotationinfof(pathname))
+ logfile_type = LOGFILE_NEW;
/* Check if there is a rotation overdue */
if (loginfo.log_audit_rotationsync_enabled &&
loginfo.log_audit_rotationunit != LOG_UNIT_HOURS &&
loginfo.log_audit_rotationunit != LOG_UNIT_MINS &&
- loginfo.log_audit_ctime < loginfo.log_audit_rotationsyncclock - loginfo.log_audit_rotationtime_secs) {
- loginfo.log_audit_rotationsyncclock -= loginfo.log_audit_rotationtime_secs;
+ loginfo.log_audit_ctime < loginfo.log_audit_rotationsyncclock - PR_ABS(loginfo.log_audit_rotationtime_secs)) {
+ loginfo.log_audit_rotationsyncclock -= PR_ABS(loginfo.log_audit_rotationtime_secs);
}
- fclose (fp);
- return LOGFILE_REOPENED;
+ return logfile_type;
}
/******************************************************************************
@@ -3336,8 +3577,8 @@
logp = loginfo.log_error_logchain;
while ( logp) {
log_convert_time (logp->l_ctime, tbuf, 1 /*short */);
- PR_snprintf(buffer, sizeof(buffer), "LOGINFO:Previous Log File:%s.%s (%lu) (%u)\n",
- loginfo.log_error_file, tbuf, logp->l_ctime, logp->l_size);
+ PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%lu) (%u)\n",
+ PREVLOGFILE, loginfo.log_error_file, tbuf, logp->l_ctime, logp->l_size);
LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
logp = logp->l_next;
}
@@ -3457,8 +3698,8 @@
logp = loginfo.log_audit_logchain;
while ( logp) {
log_convert_time (logp->l_ctime, tbuf, 1 /*short */);
- PR_snprintf(buffer, sizeof(buffer), "LOGINFO:Previous Log File:%s.%s (%d) (%d)\n",
- loginfo.log_audit_file, tbuf, (int)logp->l_ctime, logp->l_size);
+ PR_snprintf(buffer, sizeof(buffer), "LOGINFO:%s%s.%s (%d) (%d)\n",
+ PREVLOGFILE, loginfo.log_audit_file, tbuf, (int)logp->l_ctime, logp->l_size);
LOG_WRITE(fpinfo, buffer, strlen(buffer), 0);
logp = logp->l_next;
}
@@ -3629,7 +3870,6 @@
static void
log_convert_time (time_t ctime, char *tbuf, int type)
{
-
struct tm *tmsp, tms;
#ifdef _WIN32
@@ -3649,6 +3889,27 @@
}
+/*
+ * log_reverse_convert_time
+ * convert the given string formatted time (output from log_convert_time)
+ * into time_t
+ */
+static time_t
+log_reverse_convert_time(char *tbuf)
+{
+ struct tm tm;
+
+ if (strchr(tbuf, '-')) { /* short format */
+ strptime(tbuf, "%Y%m%d-%H%M%S", &tm);
+ } else if (strchr(tbuf, '/') && strchr(tbuf, ':')) { /* long format */
+ strptime(tbuf, "%d/%b/%Y:%H:%M:%S", &tm);
+ } else {
+ return 0;
+ }
+
+ return mktime(&tm);
+}
+
int
check_log_max_size( char *maxdiskspace_str,
char *mlogsize_str,
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/servers/slapd ava.c, 1.4.2.1, 1.4.2.2
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8637
Modified Files:
Tag: Directory71RtmBranch
ava.c
Log Message:
Resolves: #247725
Summary: rhds71 Invalid LDIF Syntax crashes directory server
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: ava.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/ava.c,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- ava.c 2 Mar 2006 01:12:25 -0000 1.4.2.1
+++ ava.c 21 Dec 2007 17:38:48 -0000 1.4.2.2
@@ -108,7 +108,7 @@
strcpy_special_undo( char *d, const char *s )
{
const char *end = s + strlen(s);
- for ( ; *s; s++ )
+ for ( ; s < end && *s; s++ )
{
switch ( *s )
{
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/servers/slapd index_subsystem.c, 1.5, 1.5.2.1 plugin_internal_op.c, 1.5, 1.5.2.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/slapd
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24843/slapd
Modified Files:
Tag: Directory71RtmBranch
index_subsystem.c plugin_internal_op.c
Log Message:
Resolves: #297221
Summary: rhds71 Malformed Dynamic Authorization Group makes Directory Server Crash
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: index_subsystem.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/index_subsystem.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- index_subsystem.c 19 Apr 2005 22:07:36 -0000 1.5
+++ index_subsystem.c 21 Dec 2007 00:03:46 -0000 1.5.2.1
@@ -1029,7 +1029,7 @@
Slapi_Filter *tmp_f = slapi_str2filter(registration_item->index_filter);
Slapi_Backend *be;
- if(!theCache)
+ if(!theCache || !tmp_f)
return -1;
index_subsys_write_lock();
Index: plugin_internal_op.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/plugin_internal_op.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- plugin_internal_op.c 19 Apr 2005 22:07:36 -0000 1.5
+++ plugin_internal_op.c 21 Dec 2007 00:03:46 -0000 1.5.2.1
@@ -717,7 +717,7 @@
op->o_search_entry_handler = internal_srch_entry_callback;
op->o_search_referral_handler = internal_ref_entry_callback;
- filter = slapi_str2filter(ifstr ? (fstr = slapi_ch_strdup(ifstr)) : "");
+ filter = slapi_str2filter(ifstr ? (fstr = slapi_ch_strdup(ifstr)) : NULL);
if(scope == LDAP_SCOPE_BASE) filter->f_flags |= (SLAPI_FILTER_LDAPSUBENTRY | SLAPI_FILTER_TOMBSTONE);
if (NULL == filter)
{
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/servers/plugins/statechange statechange.c, 1.5, 1.5.2.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/plugins/statechange
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24843/plugins/statechange
Modified Files:
Tag: Directory71RtmBranch
statechange.c
Log Message:
Resolves: #297221
Summary: rhds71 Malformed Dynamic Authorization Group makes Directory Server Crash
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: statechange.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/statechange/statechange.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- statechange.c 19 Apr 2005 22:07:35 -0000 1.5
+++ statechange.c 21 Dec 2007 00:03:46 -0000 1.5.2.1
@@ -326,7 +326,20 @@
item->dn = 0;
item->filter = slapi_ch_strdup(filter);
item->caller_data = caller_data;
- item->realfilter = slapi_str2filter(writable_filter);
+ if (writable_filter &&
+ (NULL == (item->realfilter = slapi_str2filter(writable_filter)))) {
+ slapi_log_error(SLAPI_LOG_FATAL, SCN_PLUGIN_SUBSYSTEM,
+ "Error: invalid filter in statechange entry [%s]: [%s]\n",
+ dn, filter);
+ slapi_ch_free_string(&item->caller_id);
+ slapi_ch_free_string(&item->dn);
+ slapi_ch_free_string(&item->filter);
+ slapi_ch_free_string(&writable_filter);
+ slapi_ch_free((void **)&item);
+ return -1;
+ } else if (!writable_filter) {
+ item->realfilter = NULL;
+ }
item->func = func;
slapi_lock_mutex(buffer_lock);
15 years, 11 months
[Fedora-directory-commits] ldapserver/ldap/servers/plugins/acl acllas.c, 1.5, 1.5.2.1 aclanom.c, 1.5, 1.5.2.1
by Doctor Conrad
Author: nhosoi
Update of /cvs/dirsec/ldapserver/ldap/servers/plugins/acl
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24843/plugins/acl
Modified Files:
Tag: Directory71RtmBranch
acllas.c aclanom.c
Log Message:
Resolves: #297221
Summary: rhds71 Malformed Dynamic Authorization Group makes Directory Server Crash
Note: applying the fixes in HEAD to Directory71RtmBranch
Index: acllas.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/acl/acllas.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- acllas.c 19 Apr 2005 22:07:28 -0000 1.5
+++ acllas.c 21 Dec 2007 00:03:45 -0000 1.5.2.1
@@ -3027,9 +3027,17 @@
/* Convert the filter string */
f = slapi_str2filter ( ludp->lud_filter );
+ if (ludp->lud_filter && (f == NULL)) { /* bogus filter */
+ slapi_log_error(SLAPI_LOG_FATAL, plugin_name,
+ "DS_LASUserAttrEval: The member URL search filter in entry [%s] is not valid: [%s]\n",
+ n_clientdn, ludp->lud_filter);
+ ldap_free_urldesc( ludp );
+ return ACL_FALSE;
+ }
+
rc = ACL_TRUE;
- if (0 != slapi_vattr_filter_test ( aclpb->aclpb_pblock,
- aclpb->aclpb_client_entry, f, 0 /* no acces chk */ ))
+ if (f && (0 != slapi_vattr_filter_test ( aclpb->aclpb_pblock,
+ aclpb->aclpb_client_entry, f, 0 /* no acces chk */ )))
rc = ACL_FALSE;
ldap_free_urldesc( ludp );
@@ -3844,6 +3852,8 @@
int rc = ACL_FALSE;
Slapi_Filter *f = NULL;
+ PR_ASSERT(str);
+
if ((f = slapi_str2filter(str)) == NULL) {
slapi_log_error(SLAPI_LOG_FATAL, plugin_name,
"Warning: Bad targetfilter(%s) in aci: does not match\n", str);
Index: aclanom.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/acl/aclanom.c,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- aclanom.c 19 Apr 2005 22:07:28 -0000 1.5
+++ aclanom.c 21 Dec 2007 00:03:45 -0000 1.5.2.1
@@ -233,8 +233,16 @@
}
a_profile->anom_targetinfo[a_numacl].anom_filter = NULL;
- if ( aci->targetFilterStr )
+ if ( aci->targetFilterStr ) {
a_profile->anom_targetinfo[a_numacl].anom_filter = slapi_str2filter ( aci->targetFilterStr );
+ if (NULL == a_profile->anom_targetinfo[a_numacl].anom_filter) {
+ const char *dn = slapi_sdn_get_dn ( aci->aci_sdn );
+ slapi_log_error(SLAPI_LOG_FATAL, plugin_name,
+ "Error: invalid filter [%s] in anonymous aci in entry [%s]\n",
+ aci->targetFilterStr, dn);
+ goto cleanup;
+ }
+ }
i = 0;
srcattrArray = aci->targetAttr;
15 years, 11 months
[Fedora-directory-commits] ldapserver configure.ac, 1.44, 1.45 aclocal.m4, 1.60, 1.61 configure, 1.77, 1.78 missing, 1.45, 1.46 install-sh, 1.45, 1.46 compile, 1.44, 1.45 depcomp, 1.45, 1.46 Makefile.in, 1.81, 1.82 config.sub, 1.44, 1.45 config.guess, 1.44, 1.45
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/ldapserver
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9738
Modified Files:
configure.ac aclocal.m4 configure missing install-sh compile
depcomp Makefile.in config.sub config.guess
Log Message:
bump version to 1.1.0 for Fedora DS 1.1 release
Index: configure.ac
===================================================================
RCS file: /cvs/dirsec/ldapserver/configure.ac,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- configure.ac 7 Nov 2007 15:08:21 -0000 1.44
+++ configure.ac 19 Dec 2007 20:18:34 -0000 1.45
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
# This version is the version returned by ns-slapd -v
-AC_INIT([dirsrv], [1.1.0b2], [http://bugzilla.redhat.com/])
+AC_INIT([dirsrv], [1.1.0], [http://bugzilla.redhat.com/])
# AC_CONFIG_HEADER must be called right after AC_INIT.
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([1.9 foreign subdir-objects])
Index: configure
===================================================================
RCS file: /cvs/dirsec/ldapserver/configure,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- configure 7 Nov 2007 15:08:21 -0000 1.77
+++ configure 19 Dec 2007 20:18:34 -0000 1.78
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for dirsrv 1.1.0b2.
+# Generated by GNU Autoconf 2.59 for dirsrv 1.1.0.
#
# Report bugs to <http://bugzilla.redhat.com/>.
#
@@ -423,8 +423,8 @@
# Identity of this package.
PACKAGE_NAME='dirsrv'
PACKAGE_TARNAME='dirsrv'
-PACKAGE_VERSION='1.1.0b2'
-PACKAGE_STRING='dirsrv 1.1.0b2'
+PACKAGE_VERSION='1.1.0'
+PACKAGE_STRING='dirsrv 1.1.0'
PACKAGE_BUGREPORT='http://bugzilla.redhat.com/'
# Factoring default headers for most tests.
@@ -954,7 +954,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures dirsrv 1.1.0b2 to adapt to many kinds of systems.
+\`configure' configures dirsrv 1.1.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1020,7 +1020,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of dirsrv 1.1.0b2:";;
+ short | recursive ) echo "Configuration of dirsrv 1.1.0:";;
esac
cat <<\_ACEOF
@@ -1201,7 +1201,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-dirsrv configure 1.1.0b2
+dirsrv configure 1.1.0
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1215,7 +1215,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by dirsrv $as_me 1.1.0b2, which was
+It was created by dirsrv $as_me 1.1.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1861,7 +1861,7 @@
# Define the identity of the package.
PACKAGE='dirsrv'
- VERSION='1.1.0b2'
+ VERSION='1.1.0'
cat >>confdefs.h <<_ACEOF
@@ -25741,7 +25741,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by dirsrv $as_me 1.1.0b2, which was
+This file was extended by dirsrv $as_me 1.1.0, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -25804,7 +25804,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-dirsrv config.status 1.1.0b2
+dirsrv config.status 1.1.0
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
15 years, 11 months
[Fedora-directory-commits] admservconsole fedora-admin-console.spec, 1.4, 1.5
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/admservconsole
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9547
Modified Files:
fedora-admin-console.spec
Log Message:
updated spec for Fedora DS 1.1 release
Index: fedora-admin-console.spec
===================================================================
RCS file: /cvs/dirsec/admservconsole/fedora-admin-console.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- fedora-admin-console.spec 7 Nov 2007 22:07:17 -0000 1.4
+++ fedora-admin-console.spec 19 Dec 2007 20:13:44 -0000 1.5
@@ -7,7 +7,7 @@
Name: fedora-admin-console
Version: %{major_version}.%{minor_version}
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Fedora Admin Server Management Console
Group: Applications
@@ -16,11 +16,11 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-Source: %{name}-%{version}.tar.bz2
-Requires: %{dsname}-admin >= 1.1
+Source: http://directory.fedoraproject.org/sources/%{name}-%{version}.tar.bz2
+Requires: %{dsname}-admin
BuildRequires: ant >= 1.6.2
BuildRequires: ldapjdk
-BuildRequires: idm-console-framework >= 1.1
+BuildRequires: idm-console-framework
%description
A Java based remote management console used for Managing Fedora
@@ -68,6 +68,9 @@
%doc %{_datadir}/%{pkgname}/manual/en/admin/help/*.html
%changelog
+* Wed Dec 19 2007 Rich Megginson <rmeggins(a)redhat.com> - 1.1.0-4
+- This is for the Fedora DS 1.1 release
+
* Thu Oct 25 2007 Rich Megginson <rmeggins(a)redhat.com> - 1.1.0-3
- updated sources - use dirsrv as package name
15 years, 11 months
[Fedora-directory-commits] directoryconsole fedora-ds-console.spec, 1.4, 1.5
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/directoryconsole
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9464
Modified Files:
fedora-ds-console.spec
Log Message:
updated spec for Fedora DS 1.1 release
Index: fedora-ds-console.spec
===================================================================
RCS file: /cvs/dirsec/directoryconsole/fedora-ds-console.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- fedora-ds-console.spec 13 Aug 2007 22:28:08 -0000 1.4
+++ fedora-ds-console.spec 19 Dec 2007 20:11:31 -0000 1.5
@@ -6,7 +6,7 @@
Name: fedora-ds-console
Version: %{major_version}.%{minor_version}
-Release: 4
+Release: 5%{?dist}
Summary: Fedora Directory Server Management Console
Group: Applications
@@ -15,11 +15,11 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-Source: %{name}-%{version}.tar.bz2
-Requires: %{shortname}-admin >= 1.1
+Source: http://directory.fedoraproject.org/sources/%{name}-%{version}.tar.bz2
+Requires: %{shortname}-admin
BuildRequires: ant >= 1.6.2
BuildRequires: ldapjdk
-BuildRequires: idm-console-framework >= 1.1
+BuildRequires: idm-console-framework
%description
A Java based remote management console used for Managing Fedora
@@ -67,6 +67,9 @@
%doc %{_datadir}/%{pkgname}/manual/en/slapd/help/*.html
%changelog
+* Wed Dec 19 2007 Rich Megginson <rmeggins(a)redhat.com> 1.1.0-5
+- This is for the Fedora DS 1.1 release
+
* Mon Aug 13 2007 Nathan Kinder <nkinder(a)redhat.com> 1.1.0-4
- Added online help files to package. Use pkgname for filesystem
path naming instead of shortname.
15 years, 11 months
[Fedora-directory-commits] console idm-console-framework.spec, 1.2, 1.3
by Doctor Conrad
Author: rmeggins
Update of /cvs/dirsec/console
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv9403
Modified Files:
idm-console-framework.spec
Log Message:
minor tweak to deps and source url
Index: idm-console-framework.spec
===================================================================
RCS file: /cvs/dirsec/console/idm-console-framework.spec,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- idm-console-framework.spec 19 Dec 2007 20:07:43 -0000 1.2
+++ idm-console-framework.spec 19 Dec 2007 20:10:27 -0000 1.3
@@ -12,12 +12,12 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
-Source: %{name}-%{version}.tar.bz2
+Source: http://directory.fedoraproject.org/sources/%{name}-%{version}.tar.bz2
Requires: ldapjdk
-Requires: jss >= 4.2
+Requires: jss
BuildRequires: ant >= 1.6.2
BuildRequires: ldapjdk
-BuildRequires: jss >= 4.2
+BuildRequires: jss
%description
A Java Management Console framework used for remote server management.
15 years, 11 months