[BusyBox 0003874]: Applet vi corrupted since Revision 22460
bugs at busybox.net
bugs at busybox.net
Fri Jun 27 04:17:28 UTC 2008
A NOTE has been added to this issue.
======================================================================
http://busybox.net/bugs/view.php?id=3874
======================================================================
Reported By: rockeychu
Assigned To: BusyBox
======================================================================
Project: BusyBox
Issue ID: 3874
Category: Other
Reproducibility: always
Severity: crash
Priority: normal
Status: assigned
======================================================================
Date Submitted: 06-26-2008 19:53 PDT
Last Modified: 06-26-2008 21:17 PDT
======================================================================
Summary: Applet vi corrupted since Revision 22460
Description:
Since Revision 22460, the applet vi worked incorrectly.
Patch as following against revision 22525:
Index: editors/vi.c
===================================================================
--- editors/vi.c (revision 22525)
+++ editors/vi.c (working copy)
@@ -1883,8 +1883,7 @@
{
if (size <= 0)
return p;
- end += size; // adjust the new END
- if (end >= (text + text_size)) {
+ if ((end + size) >= (text + text_size)) {
char *new_text;
text_size += end - (text + text_size) + 10240;
new_text = xrealloc(text, text_size);
@@ -1895,6 +1894,7 @@
text = new_text;
}
memmove(p + size, p, end - p);
+ end += size; // adjust the new END
memset(p, ' ', size); // clear new hole
file_modified++;
return p;
======================================================================
----------------------------------------------------------------------
vda - 06-26-08 21:01
----------------------------------------------------------------------
Should this line be fixed too?
text_size += end - (text + text_size) + 10240;
----------------------------------------------------------------------
vda - 06-26-08 21:05
----------------------------------------------------------------------
I will commit this fix instead, is it ok?
- memmove(p + size, p, end - p);
+ memmove(p + size, p, end - size - p);
----------------------------------------------------------------------
rockeychu - 06-26-08 21:17
----------------------------------------------------------------------
It's OK.
Issue History
Date Modified Username Field Change
======================================================================
06-26-08 19:53 rockeychu New Issue
06-26-08 19:53 rockeychu Status new => assigned
06-26-08 19:53 rockeychu Assigned To => BusyBox
06-26-08 21:01 vda Note Added: 0008604
06-26-08 21:05 vda Note Added: 0008614
06-26-08 21:17 rockeychu Note Added: 0008624
======================================================================
More information about the busybox-cvs
mailing list