[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#6400) Different-sized CSNs confuse accesslog



Full_Name: Hallvard B Furuseth
Version: 
OS: 
URL: 
Submission from: (NULL) (129.240.6.233)
Submitted by: hallvard


Given CSNs of different lengths, overlays/accesslog.c:log_old_lookup()
remembers truncated versions of the longer CSNs as "max CSN".  The
remembered length shrinks but never grows as CSNs change.
I think the test
		if ( len > pd->csn.bv_len )
			len = pd->csn.bv_len;
should be
		if ( len > LDAP_PVT_CSNSTR_BUFSIZE )
			len = LDAP_PVT_CSNSTR_BUFSIZE;
since as far as I can tell pd->csn.bv_val is always csnbuf from
accesslog_purge().

The compare just below must be fixed to match.  It is buggy now anyway,
CSNs of different lengths can compare equal.