Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
6beb139e
Commit
6beb139e
authored
Mar 18, 2004
by
Pierangelo Masarati
Browse files
fix nasty subtype bug (too many results)
parent
abd39c09
Changes
2
Hide whitespace changes
Inline
Side-by-side
servers/slapd/back-sql/entry-id.c
View file @
6beb139e
...
...
@@ -398,6 +398,24 @@ backsql_id2entry( backsql_srch_info *bsi, Entry *e, backsql_entryID *eid )
continue
;
}
/* if one of the attributes listed here is
* a subtype of another, it must be ignored,
* because subtypes are already dealt with
* by backsql_supad2at()
*/
for
(
j
=
0
;
bsi
->
bsi_attrs
[
j
].
an_name
.
bv_val
;
j
++
)
{
/* skip self */
if
(
j
==
i
)
{
continue
;
}
/* skip subtypes */
if
(
is_at_subtype
(
attr
->
an_desc
->
ad_type
,
bsi
->
bsi_attrs
[
j
].
an_desc
->
ad_type
)
)
{
goto
next
;
}
}
rc
=
backsql_supad2at
(
bsi
->
bsi_oc
,
attr
->
an_desc
,
&
vat
);
if
(
rc
!=
0
||
vat
==
NULL
)
{
Debug
(
LDAP_DEBUG_TRACE
,
"backsql_id2entry(): "
...
...
@@ -413,6 +431,8 @@ backsql_id2entry( backsql_srch_info *bsi, Entry *e, backsql_entryID *eid )
}
ch_free
(
vat
);
next:
;
}
}
else
{
...
...
servers/slapd/back-sql/schema-map.c
View file @
6beb139e
...
...
@@ -595,8 +595,23 @@ supad2at_f( void *v_at, void *v_arg )
if
(
is_at_subtype
(
at
->
bam_ad
->
ad_type
,
va
->
ad
->
ad_type
)
)
{
backsql_at_map_rec
**
ret
;
unsigned
i
;
/* if already listed, holler! (should never happen) */
if
(
va
->
ret
)
{
for
(
i
=
0
;
i
<
va
->
n
;
i
++
)
{
if
(
va
->
ret
[
i
]
->
bam_ad
==
at
->
bam_ad
)
{
break
;
}
}
if
(
i
<
va
->
n
)
{
return
0
;
}
}
ret
=
ch_realloc
(
va
->
ret
,
sizeof
(
backsql_at_map_rec
*
)
*
(
va
->
n
+
2
)
);
ret
=
ch_realloc
(
va
->
ret
,
sizeof
(
backsql_at_map_rec
*
)
*
(
va
->
n
+
2
)
);
if
(
ret
==
NULL
)
{
ch_free
(
va
->
ret
);
return
SUPAD2AT_STOP
;
...
...
@@ -632,7 +647,7 @@ backsql_supad2at( backsql_oc_map_rec *objclass, AttributeDescription *supad,
va
.
ret
=
NULL
;
va
.
ad
=
supad
;
va
.
n
=
0
;
rc
=
avl_apply
(
objclass
->
bom_attrs
,
supad2at_f
,
&
va
,
SUPAD2AT_STOP
,
AVL_INORDER
);
if
(
rc
==
SUPAD2AT_STOP
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment