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
91743d66
Commit
91743d66
authored
May 20, 2015
by
Hallvard Furuseth
Browse files
mtest*.c: Fix MDB_NOOVERWRITE, plug cursor leak
parent
822b2d50
Changes
3
Hide whitespace changes
Inline
Side-by-side
libraries/liblmdb/mtest.c
View file @
91743d66
...
...
@@ -54,12 +54,13 @@ int main(int argc,char * argv[])
key
.
mv_size
=
sizeof
(
int
);
key
.
mv_data
=
sval
;
data
.
mv_size
=
sizeof
(
sval
);
data
.
mv_data
=
sval
;
printf
(
"Adding %d values
\n
"
,
count
);
for
(
i
=
0
;
i
<
count
;
i
++
)
{
sprintf
(
sval
,
"%03x %d foo bar"
,
values
[
i
],
values
[
i
]);
/* Set <data> in each iteration, since MDB_NOOVERWRITE may modify it */
data
.
mv_size
=
sizeof
(
sval
);
data
.
mv_data
=
sval
;
if
(
RES
(
MDB_KEYEXIST
,
mdb_put
(
txn
,
dbi
,
&
key
,
&
data
,
MDB_NOOVERWRITE
)))
{
j
++
;
data
.
mv_size
=
sizeof
(
sval
);
...
...
@@ -130,6 +131,7 @@ int main(int argc,char * argv[])
(
int
)
key
.
mv_size
,
(
char
*
)
key
.
mv_data
,
(
int
)
data
.
mv_size
,
(
char
*
)
data
.
mv_data
);
mdb_cursor_close
(
cursor
);
mdb_txn_abort
(
txn
);
printf
(
"Deleting with cursor
\n
"
);
...
...
libraries/liblmdb/mtest2.c
View file @
91743d66
...
...
@@ -57,12 +57,12 @@ int main(int argc,char * argv[])
key
.
mv_size
=
sizeof
(
int
);
key
.
mv_data
=
sval
;
data
.
mv_size
=
sizeof
(
sval
);
data
.
mv_data
=
sval
;
printf
(
"Adding %d values
\n
"
,
count
);
for
(
i
=
0
;
i
<
count
;
i
++
)
{
sprintf
(
sval
,
"%03x %d foo bar"
,
values
[
i
],
values
[
i
]);
data
.
mv_size
=
sizeof
(
sval
);
data
.
mv_data
=
sval
;
if
(
RES
(
MDB_KEYEXIST
,
mdb_put
(
txn
,
dbi
,
&
key
,
&
data
,
MDB_NOOVERWRITE
)))
j
++
;
}
...
...
libraries/liblmdb/mtest6.c
View file @
91743d66
...
...
@@ -31,7 +31,7 @@ int main(int argc,char * argv[])
int
i
=
0
,
j
=
0
,
rc
;
MDB_env
*
env
;
MDB_dbi
dbi
;
MDB_val
key
,
data
;
MDB_val
key
,
data
,
sdata
;
MDB_txn
*
txn
;
MDB_stat
mst
;
MDB_cursor
*
cursor
;
...
...
@@ -55,25 +55,28 @@ int main(int argc,char * argv[])
sval
=
calloc
(
1
,
mst
.
ms_psize
/
4
);
key
.
mv_size
=
sizeof
(
long
);
key
.
mv_data
=
&
kval
;
data
.
mv_size
=
mst
.
ms_psize
/
4
-
30
;
data
.
mv_data
=
sval
;
s
data
.
mv_size
=
mst
.
ms_psize
/
4
-
30
;
s
data
.
mv_data
=
sval
;
printf
(
"Adding 12 values, should yield 3 splits
\n
"
);
for
(
i
=
0
;
i
<
12
;
i
++
)
{
kval
=
i
*
5
;
sprintf
(
sval
,
"%08x"
,
kval
);
data
=
sdata
;
(
void
)
RES
(
MDB_KEYEXIST
,
mdb_cursor_put
(
cursor
,
&
key
,
&
data
,
MDB_NOOVERWRITE
));
}
printf
(
"Adding 12 more values, should yield 3 splits
\n
"
);
for
(
i
=
0
;
i
<
12
;
i
++
)
{
kval
=
i
*
5
+
4
;
sprintf
(
sval
,
"%08x"
,
kval
);
data
=
sdata
;
(
void
)
RES
(
MDB_KEYEXIST
,
mdb_cursor_put
(
cursor
,
&
key
,
&
data
,
MDB_NOOVERWRITE
));
}
printf
(
"Adding 12 more values, should yield 3 splits
\n
"
);
for
(
i
=
0
;
i
<
12
;
i
++
)
{
kval
=
i
*
5
+
1
;
sprintf
(
sval
,
"%08x"
,
kval
);
data
=
sdata
;
(
void
)
RES
(
MDB_KEYEXIST
,
mdb_cursor_put
(
cursor
,
&
key
,
&
data
,
MDB_NOOVERWRITE
));
}
E
(
mdb_cursor_get
(
cursor
,
&
key
,
&
data
,
MDB_FIRST
));
...
...
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