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
b03d8abc
Commit
b03d8abc
authored
Apr 06, 2006
by
Pierangelo Masarati
Browse files
don't leak if realloc fails (ITS#4477)
parent
c6ab0790
Changes
1
Hide whitespace changes
Inline
Side-by-side
servers/slapd/sl_malloc.c
View file @
b03d8abc
...
...
@@ -261,6 +261,10 @@ slap_sl_malloc(
unsigned
long
diff
;
int
i
,
j
;
#ifdef SLAP_NO_SL_MALLOC
return
ber_malloc_x
(
size
,
NULL
);
#endif
/* ber_set_option calls us like this */
if
(
!
ctx
)
return
ber_memalloc_x
(
size
,
NULL
);
...
...
@@ -365,6 +369,10 @@ slap_sl_realloc(void *ptr, ber_len_t size, void *ctx)
if
(
ptr
==
NULL
)
return
slap_sl_malloc
(
size
,
ctx
);
#ifdef SLAP_NO_SL_MALLOC
return
ber_memrealloc_x
(
ptr
,
size
,
NULL
);
#endif
/* Not our memory? */
if
(
!
sh
||
ptr
<
sh
->
sh_base
||
ptr
>=
sh
->
sh_end
)
{
/* duplicate of realloc behavior, oh well */
...
...
@@ -434,6 +442,11 @@ slap_sl_free(void *ptr, void *ctx)
if
(
!
ptr
)
return
;
#ifdef SLAP_NO_SL_MALLOC
ber_memfree_x
(
ptr
,
NULL
);
return
;
#endif
if
(
!
sh
||
ptr
<
sh
->
sh_base
||
ptr
>=
sh
->
sh_end
)
{
ber_memfree_x
(
ptr
,
NULL
);
}
else
if
(
sh
->
sh_stack
&&
(
char
*
)
ptr
+
p
[
-
1
]
==
sh
->
sh_last
)
{
...
...
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