Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
dccb6a47
Commit
dccb6a47
authored
Feb 20, 2009
by
Quanah Gibson-Mount
Browse files
More for ITS
#5959
parent
86258aaa
Changes
3
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
dccb6a47
...
...
@@ -7,7 +7,7 @@ OpenLDAP 2.4.15 Release (2009/02/19)
Fixed slapd corrupt contextCSN (ITS#5947)
Fixed slapd syncrepl order to match on add/delete (ITS#5954)
Fixed slapd-bdb/hdb behavior with unallocatable shm (ITS#5956)
Fixed slapd-meta with entries with invalid attrs (ITS#5959)
Fixed slapd-
ldap/
meta with entries with invalid attrs (ITS#5959)
Fixed slapd-relay control initialization (ITS#5724)
Fixed slapo-pcache caching invalid entries (ITS#5927)
Fixed slapo-rwm objectClass preservation (ITS#5760)
...
...
servers/slapd/back-ldap/search.c
View file @
dccb6a47
...
...
@@ -428,7 +428,7 @@ retry:
* are passed without checks */
rc
=
ldap_parse_intermediate
(
lc
->
lc_ld
,
res
,
&
rs
->
sr_rspoid
,
(
char
**
)
&
rs
->
sr_rspoid
,
&
rs
->
sr_rspdata
,
&
rs
->
sr_ctrls
,
0
);
...
...
@@ -439,7 +439,7 @@ retry:
slap_send_ldap_intermediate
(
op
,
rs
);
if
(
rs
->
sr_rspoid
!=
NULL
)
{
ber_memfree
(
rs
->
sr_rspoid
);
ber_memfree
(
(
char
*
)
rs
->
sr_rspoid
);
rs
->
sr_rspoid
=
NULL
;
}
...
...
@@ -729,7 +729,10 @@ ldap_build_entry(
goto
next_attr
;
}
for
(
i
=
0
;
!
BER_BVISNULL
(
&
attr
->
a_vals
[
i
]
);
i
++
)
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
attr
->
a_vals
[
i
]
);
i
++
)
;
last
=
i
;
for
(
i
=
0
;
i
<
last
;
i
++
)
{
struct
berval
pval
;
int
rc
;
...
...
@@ -752,18 +755,25 @@ ldap_build_entry(
ber_dupbv
(
&
pval
,
&
oc
->
soc_cname
);
}
else
{
attr
->
a_nvals
=
NULL
;
attr_free
(
attr
);
goto
next_attr
;
LBER_FREE
(
attr
->
a_vals
[
i
].
bv_val
);
if
(
--
last
==
i
)
{
BER_BVZERO
(
&
attr
->
a_vals
[
i
]
);
break
;
}
attr
->
a_vals
[
i
]
=
attr
->
a_vals
[
last
];
BER_BVZERO
(
&
attr
->
a_vals
[
last
]
);
}
}
if
(
pretty
)
{
}
else
if
(
pretty
)
{
LBER_FREE
(
attr
->
a_vals
[
i
].
bv_val
);
attr
->
a_vals
[
i
]
=
pval
;
}
}
attr
->
a_numvals
=
last
=
i
;
if
(
last
==
0
&&
attr
->
a_vals
!=
&
slap_dummy_bv
)
{
attr
->
a_nvals
=
NULL
;
attr_free
(
attr
);
goto
next_attr
;
}
if
(
last
&&
attr
->
a_desc
->
ad_type
->
sat_equality
&&
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
)
...
...
@@ -784,16 +794,26 @@ ldap_build_entry(
NULL
);
if
(
rc
!=
LDAP_SUCCESS
)
{
BER_BVZERO
(
&
attr
->
a_nvals
[
i
]
);
attr_free
(
attr
);
goto
next_attr
;
LBER_FREE
(
attr
->
a_vals
[
i
].
bv_val
);
if
(
--
last
==
i
)
{
BER_BVZERO
(
&
attr
->
a_vals
[
i
]
);
break
;
}
attr
->
a_vals
[
i
]
=
attr
->
a_vals
[
last
];
BER_BVZERO
(
&
attr
->
a_vals
[
last
]
);
}
}
BER_BVZERO
(
&
attr
->
a_nvals
[
i
]
);
if
(
last
==
0
)
{
attr_free
(
attr
);
goto
next_attr
;
}
}
else
{
attr
->
a_nvals
=
attr
->
a_vals
;
}
attr
->
a_numvals
=
last
;
*
attrp
=
attr
;
attrp
=
&
attr
->
a_next
;
...
...
servers/slapd/back-meta/search.c
View file @
dccb6a47
...
...
@@ -1222,7 +1222,7 @@ really_bad:;
* are passed without checks */
rs
->
sr_err
=
ldap_parse_intermediate
(
msc
->
msc_ld
,
msg
,
&
rs
->
sr_rspoid
,
(
char
**
)
&
rs
->
sr_rspoid
,
&
rs
->
sr_rspdata
,
&
rs
->
sr_ctrls
,
0
);
...
...
@@ -1236,7 +1236,7 @@ really_bad:;
slap_send_ldap_intermediate
(
op
,
rs
);
if
(
rs
->
sr_rspoid
!=
NULL
)
{
ber_memfree
(
rs
->
sr_rspoid
);
ber_memfree
(
(
char
*
)
rs
->
sr_rspoid
);
rs
->
sr_rspoid
=
NULL
;
}
...
...
@@ -2080,24 +2080,34 @@ remove_oc:;
attr
->
a_nvals
=
ch_malloc
(
(
last
+
1
)
*
sizeof
(
struct
berval
)
);
for
(
i
=
0
;
i
<
last
;
i
++
)
{
/* if normalizer fails,
forget
this
attr
*/
/* if normalizer fails,
drop
this
value
*/
if
(
attr
->
a_desc
->
ad_type
->
sat_equality
->
smr_normalize
(
SLAP_MR_VALUE_OF_ATTRIBUTE_SYNTAX
,
attr
->
a_desc
->
ad_type
->
sat_syntax
,
attr
->
a_desc
->
ad_type
->
sat_equality
,
&
attr
->
a_vals
[
i
],
&
attr
->
a_nvals
[
i
],
NULL
))
{
BER_BVZERO
(
&
attr
->
a_nvals
[
i
]
);
attr_free
(
attr
);
goto
next_attr
;
LBER_FREE
(
attr
->
a_vals
[
i
].
bv_val
);
if
(
--
last
==
i
)
{
BER_BVZERO
(
&
attr
->
a_vals
[
i
]
);
break
;
}
attr
->
a_vals
[
i
]
=
attr
->
a_vals
[
last
];
BER_BVZERO
(
&
attr
->
a_vals
[
last
]
);
i
--
;
}
}
BER_BVZERO
(
&
attr
->
a_nvals
[
i
]
);
if
(
last
==
0
)
{
attr_free
(
attr
);
goto
next_attr
;
}
}
else
{
attr
->
a_nvals
=
attr
->
a_vals
;
}
attr
->
a_numvals
=
last
;
*
attrp
=
attr
;
attrp
=
&
attr
->
a_next
;
next_attr:
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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