Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
erp5
Commits
c70989a5
Commit
c70989a5
authored
10 years ago
by
Vincent Pelletier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BTreeData: Fix data loss on chunk overwrite not reaching chunk end.
parent
4c92f80f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
+13
-6
product/ERP5Type/BTreeData.py
product/ERP5Type/BTreeData.py
+13
-6
No files found.
product/ERP5Type/BTreeData.py
View file @
c70989a5
...
...
@@ -73,7 +73,8 @@ class BTreeData(Persistent):
chunk
=
tree
[
lower_key
]
if
lower_key
+
len
(
chunk
.
value
)
>
offset
:
key
=
lower_key
buf
=
chunk
.
value
[:
offset
-
key
]
+
buf
chunk_offset
=
offset
-
key
buf
=
chunk
.
value
[:
chunk_offset
]
+
buf
+
chunk
.
value
[
chunk_offset
+
len
(
buf
):]
try
:
tree
.
minKey
(
len
(
buf
)
+
offset
)
except
ValueError
:
...
...
@@ -239,20 +240,26 @@ if __name__ == '__main__':
data
.
write
(
'XY'
,
4
)
check
(
data
,
7
,
0
,
10
,
'0123XY6'
,
[
0
,
5
])
data
.
write
(
'VW'
,
1
)
check
(
data
,
7
,
0
,
10
,
'0VW3XY6'
,
[
0
,
5
])
data
.
write
(
''
,
4
)
check
(
data
,
7
,
0
,
10
,
'0VW3XY6'
,
[
0
,
5
])
data
.
write
(
'a'
,
10
)
data
.
write
(
'8'
,
8
)
check
(
data
,
11
,
0
,
10
,
'0
12
3XY6
\
x00
8
\
x00
'
,
[
0
,
5
,
8
,
10
])
check
(
data
,
11
,
0
,
10
,
'0
VW
3XY6
\
x00
8
\
x00
'
,
[
0
,
5
,
8
,
10
])
check
(
data
,
11
,
7
,
10
,
'
\
x00
8
\
x00
a'
)
data
.
write
(
'ABCDE'
,
6
)
check
(
data
,
11
,
0
,
11
,
'0
12
3XYABCDE'
,
[
0
,
5
,
8
,
10
])
check
(
data
,
11
,
0
,
11
,
'0
VW
3XYABCDE'
,
[
0
,
5
,
8
,
10
])
data
.
truncate
(
7
)
check
(
data
,
7
,
0
,
7
,
'0
12
3XYA'
,
[
0
,
5
])
check
(
data
,
7
,
0
,
7
,
'0
VW
3XYA'
,
[
0
,
5
])
data
.
truncate
(
5
)
check
(
data
,
5
,
0
,
5
,
'0
12
3X'
,
[
0
])
check
(
data
,
5
,
0
,
5
,
'0
VW
3X'
,
[
0
])
data
.
truncate
(
3
)
check
(
data
,
3
,
0
,
3
,
'0
12
'
,
[
0
])
check
(
data
,
3
,
0
,
3
,
'0
VW
'
,
[
0
])
data
.
truncate
(
0
)
check
(
data
,
0
,
0
,
0
,
''
,
[])
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a 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