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
91680c15
Commit
91680c15
authored
Feb 09, 2008
by
Quanah Gibson-Mount
Browse files
ITS#5286
parent
c6c27320
Changes
2
Hide whitespace changes
Inline
Side-by-side
CHANGES
View file @
91680c15
...
...
@@ -8,7 +8,8 @@ OpenLDAP 2.4.8 Engineering
Fixed slapd multi-step SASL binds (ITS#5298)
Fixed slapd non-atomic signal variables (ITS#5248)
Fixed slapd overlay ordering when moving to slapd.d (ITS#5284)
Fixed slapd NULL printf (ITS#5264)
Fixed slapd NULL printf (ITS#5264)
Fixed slapd NULL set values (ITS#5286)
Fixed slapd segv with SASL/OTP (ITS#5259)
Added slapd-bdb/slapd-hdb DB encryption (ITS#5359)
Fixed slapd-ldif delete (ITS#5265)
...
...
servers/slapd/sets.c
View file @
91680c15
...
...
@@ -151,16 +151,19 @@ slap_set_join(
sizeof
(
struct
berval
),
cp
->
set_op
->
o_tmpmemctx
);
BER_BVZERO
(
&
set
[
0
]
);
return
set
;
goto
done2
;
}
return
set_dup
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
set
=
set_dup
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
goto
done2
;
}
slap_set_dispose
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
return
set_dup
(
cp
,
rset
,
SLAP_SET_RREF2REF
(
op_flags
)
);
set
=
set_dup
(
cp
,
rset
,
SLAP_SET_RREF2REF
(
op_flags
)
);
goto
done2
;
}
if
(
rset
==
NULL
||
BER_BVISNULL
(
&
rset
[
0
]
)
)
{
slap_set_dispose
(
cp
,
rset
,
SLAP_SET_RREF2REF
(
op_flags
)
);
return
set_dup
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
set
=
set_dup
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
goto
done2
;
}
/* worst scenario: no duplicates */
...
...
@@ -277,25 +280,13 @@ slap_set_join(
j
=
slap_set_size
(
lset
);
/* handle empty set cases */
if
(
i
==
0
)
{
if
(
j
==
0
)
{
set
=
cp
->
set_op
->
o_tmpcalloc
(
i
*
j
+
1
,
sizeof
(
struct
berval
),
cp
->
set_op
->
o_tmpmemctx
);
if
(
set
==
NULL
)
{
break
;
}
BER_BVZERO
(
&
set
[
0
]
);
break
;
}
else
{
set
=
set_dup
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
lset
=
NULL
;
if
(
i
==
0
||
j
==
0
)
{
set
=
cp
->
set_op
->
o_tmpcalloc
(
1
,
sizeof
(
struct
berval
),
cp
->
set_op
->
o_tmpmemctx
);
if
(
set
==
NULL
)
{
break
;
}
}
else
if
(
j
==
0
)
{
set
=
set_dup
(
cp
,
rset
,
SLAP_SET_RREF2REF
(
op_flags
)
);
rset
=
NULL
;
BER_BVZERO
(
&
set
[
0
]
);
break
;
}
...
...
@@ -364,6 +355,18 @@ done:;
if
(
lset
)
slap_set_dispose
(
cp
,
lset
,
SLAP_SET_LREF2REF
(
op_flags
)
);
if
(
rset
)
slap_set_dispose
(
cp
,
rset
,
SLAP_SET_RREF2REF
(
op_flags
)
);
done2:
;
if
(
LogTest
(
LDAP_DEBUG_ACL
)
)
{
if
(
BER_BVISNULL
(
set
)
)
{
Debug
(
LDAP_DEBUG_ACL
,
" ACL set: empty
\n
"
,
0
,
0
,
0
);
}
else
{
for
(
i
=
0
;
!
BER_BVISNULL
(
&
set
[
i
]
);
i
++
)
{
Debug
(
LDAP_DEBUG_ACL
,
" ACL set[%d]=%s
\n
"
,
i
,
set
[
i
].
bv_val
,
0
);
}
}
}
return
set
;
}
...
...
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