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

Re: (ITS#5437) Fix to servers/slapd/overlays/syncprov.c



c.hoover@its.utexas.edu wrote:
> Full_Name: Clyde Hoover
> Version: 2.4.8
> OS: Solaris 10 SPARC
> URL:
> Submission from: (NULL) (128.83.93.7)
>
>
> The bug is around line 2015 of servers/slapd/overlays/syncprov.c
>
>          } else if ( rs->sr_type == REP_RESULT&&  rs->sr_err == LDAP_SUCCESS ) {
>                  struct berval cookie;
>
>                  // The cookie is never initialized so if SS_CHANGED is not set
>                  // this can cause an internal assertion failure downstream from
>                  // syncprov_done_ctrl() (depending upon what is on the stack)
>                  // Nulling out the cookie fixes this
>                  memset((void *)&cookie, 0, sizeof(cookie));  // Add this
>                  if ( ss->ss_flags&  SS_CHANGED ) {
>                          slap_compose_sync_cookie( op,&cookie, ss->ss_ctxcsn,
>                                  srs->sr_state.rid,
> srs->sr_state.srs->sr_state.sid );

Please provide a stack trace from such a failure. The syncprov_done_ctrl() 
function should never be invoked at that point without SS_CHANGED being set, 
since in a normal Refresh the search will hit the shortcut and never reach 
that code.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/