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

Re: old/new password bv_len initialization causes test010 failure



At 11:14 AM 10/6/2005, Kurt D. Zeilenga wrote:
>[included opendlap-devel for discussion purposes]
>
>At 11:02 AM 10/6/2005, Howard Chu wrote:
>>Heh. Yes, since *qpw is unioned with everything else, old is also rs_reqdata for the original exop. I thought we left the rs_reqdata field in the req_pwdexop definition to prevent this overlap from occurring, but apparently not. I think adding it back in will be the easiest fix.
>
>It might be better to have something like:
>        struct req_extended_s {
>                ...
>                union rs_exreq_u {
>                        req_passwdexop_s rs_passwdexop;
>                }
>        }
>        struct slap_op {
>                union o_req_u {
>                        ...
>                        req_extended_s oq_extended;
>                } o_request
>#define oq_passwdexop   oq_extended.rs_exreq_u.rs_passwdexop
>        }
>
>And define req_password_s to only include the parsed fields
>from reqdata (e.g., fields not part of the base extended
>request -- reqoid, reqdata).

Another alternative would be leave slap_op alone,
but change req_pwdexop_s to be:
  struct req_pwdexop_s {
    struct req_extended_s       rs_extended;                 
    struct berval rs_old;
    struct berval rs_new;
    Modifications *rs_mods;
    Modifications **rs_modtail;
  }

Kurt