On Thu, Sep 26, 2013 at 07:24:03PM +0200, Jakub Hrozek wrote:
> On Thu, Sep 26, 2013 at 11:22:06AM +0200, Sumit Bose wrote:
> > Hi,
> > 
> > the first two attached patches should fix
> > https://fedorahosted.org/sssd/ticket/2093 and make
> > https://fedorahosted.org/sssd/ticket/2080 invalid. The third fixes wrong
> > return code in one of the functions I touched with in the other patches.
> > 
> > bye,
> > Sumit
> 
> > +    if (!ldb_dn_validate(dn)) {
> > +        DEBUG(SSSDBG_OP_FAILURE, ("Original DN [%s] is not a valid DN.\n",
> > +                                  orig_dn));
> > +        ret = EINVAL;
> > +        goto done;
> > +    }
> > +
> > +    if (ldb_dn_get_comp_num(dn) < 5) {
> > +        /* we are only interested in the member domain objects */
> > +        ret = EOK;
> > +        goto done;
> > +    }
> > +
> > +    val = ldb_dn_get_component_val(dn, 3);
> > +    if (strncasecmp("trusts", (const char *) val->data, val->length) != 0) 
> > {
> > +        DEBUG(SSSDBG_TRACE_FUNC,
> > +              ("4th component is not 'trust', nothing to do.\n"));
> > +        ret = EOK;
> > +        goto done;
> > +    }
> > +
> > +    val = ldb_dn_get_component_val(dn, 2);
> > +    if (strncasecmp("ad", (const char *) val->data, val->length) != 0) {
> > +        DEBUG(SSSDBG_TRACE_FUNC,
> > +              ("3rd component is not 'ad', nothing to do.\n"));
> > +        ret = EOK;
> > +        goto done;
> > +    }
> > +
> > +    val = ldb_dn_get_component_val(dn, 1);
> > +    forest = talloc_strndup(mem_ctx, (const char *) val->data, 
> > val->length);
> > +    if (forest == NULL) {
> > +        DEBUG(SSSDBG_OP_FAILURE, ("talloc_strndup failed.\n"));
> > +        ret = ENOMEM;
> > +        goto done;
> > +    }
> 
> I think there is an off-by-one error here. In my setup, the original DN
> is:
> 
> cn=AD.EXAMPLE.COM,cn=ad,cn=trusts,dc=ipatest,dc=example,dc=com
> 
> But "val = ldb_dn_get_component_val(dn, 3);" is "ipatest" in my case, so
> the strcmp never matches. So I think the indexes should say "2, 1, 0".
> 
> It would also be nice to print the original DN in a DEBUG message.

ah, sorry, I should have said that Alexander's latest FreeIPA patches
are needed here. They will store the member domains below the forest
root object, e.g.
cn=member.dom,cn=AD.EXAMPLE.COM,cn=ad,cn=trusts,dc=ipatest,dc=example,dc=com
For those domains the patch will set the forest name which in this case
is AD.EXAMPLE.COM.

bye,
Sumit
> _______________________________________________
> sssd-devel mailing list
> sssd-devel@lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to