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
5f8cd023
Commit
5f8cd023
authored
Jan 13, 2015
by
Howard Chu
Committed by
Quanah Gibson-Mount
Apr 02, 2020
Browse files
ITS#9198 - Plug unlikely memleak in liblunicode
parent
8617e66f
Changes
1
Hide whitespace changes
Inline
Side-by-side
libraries/liblunicode/ucstr.c
View file @
5f8cd023
...
...
@@ -109,6 +109,7 @@ struct berval * UTF8bvnormalize(
void
*
ctx
)
{
int
i
,
j
,
len
,
clen
,
outpos
,
ucsoutlen
,
outsize
,
last
;
int
didnewbv
=
0
;
char
*
out
,
*
outtmp
,
*
s
;
ac_uint4
*
ucs
,
*
p
,
*
ucsout
;
...
...
@@ -132,6 +133,7 @@ struct berval * UTF8bvnormalize(
if
(
!
newbv
)
{
newbv
=
ber_memalloc_x
(
sizeof
(
struct
berval
),
ctx
);
if
(
!
newbv
)
return
NULL
;
didnewbv
=
1
;
}
/* Should first check to see if string is already in proper
...
...
@@ -145,6 +147,9 @@ struct berval * UTF8bvnormalize(
outsize
=
len
+
7
;
out
=
(
char
*
)
ber_memalloc_x
(
outsize
,
ctx
);
if
(
out
==
NULL
)
{
fail:
if
(
didnewbv
)
ber_memfree_x
(
newbv
,
ctx
);
return
NULL
;
}
outpos
=
0
;
...
...
@@ -171,7 +176,7 @@ struct berval * UTF8bvnormalize(
outsize
=
len
+
7
;
out
=
(
char
*
)
ber_memalloc_x
(
outsize
,
ctx
);
if
(
out
==
NULL
)
{
return
NULL
;
goto
fail
;
}
outpos
=
i
-
1
;
memcpy
(
out
,
s
,
outpos
);
...
...
@@ -180,7 +185,7 @@ struct berval * UTF8bvnormalize(
outsize
=
len
+
7
;
out
=
(
char
*
)
ber_memalloc_x
(
outsize
,
ctx
);
if
(
out
==
NULL
)
{
return
NULL
;
goto
fail
;
}
outpos
=
0
;
i
=
0
;
...
...
@@ -189,7 +194,7 @@ struct berval * UTF8bvnormalize(
p
=
ucs
=
ber_memalloc_x
(
len
*
sizeof
(
*
ucs
),
ctx
);
if
(
ucs
==
NULL
)
{
ber_memfree_x
(
out
,
ctx
);
return
NULL
;
goto
fail
;
}
/* convert character before first non-ascii to ucs-4 */
...
...
@@ -207,7 +212,7 @@ struct berval * UTF8bvnormalize(
if
(
clen
==
0
)
{
ber_memfree_x
(
ucs
,
ctx
);
ber_memfree_x
(
out
,
ctx
);
return
NULL
;
goto
fail
;
}
if
(
clen
==
1
)
{
/* ascii */
...
...
@@ -219,7 +224,7 @@ struct berval * UTF8bvnormalize(
if
(
(
s
[
i
]
&
0xc0
)
!=
0x80
)
{
ber_memfree_x
(
ucs
,
ctx
);
ber_memfree_x
(
out
,
ctx
);
return
NULL
;
goto
fail
;
}
*
p
<<=
6
;
*
p
|=
s
[
i
]
&
0x3f
;
...
...
@@ -251,7 +256,7 @@ struct berval * UTF8bvnormalize(
ber_memfree_x
(
ucsout
,
ctx
);
ber_memfree_x
(
ucs
,
ctx
);
ber_memfree_x
(
out
,
ctx
);
return
NULL
;
goto
fail
;
}
out
=
outtmp
;
}
...
...
@@ -275,7 +280,7 @@ struct berval * UTF8bvnormalize(
if
(
outtmp
==
NULL
)
{
ber_memfree_x
(
ucs
,
ctx
);
ber_memfree_x
(
out
,
ctx
);
return
NULL
;
goto
fail
;
}
out
=
outtmp
;
}
...
...
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