aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-12-09 04:13:43 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-12-09 04:13:43 +0000
commita96425fe827c603b9c576c95f12b885af68eb219 (patch)
tree129ac8cb735e60e713cdf8dcf77548797a7b90ba
parentb851c42a1445c67159279d8af59965e092268ce6 (diff)
downloadbusybox-a96425fe827c603b9c576c95f12b885af68eb219.tar.gz
vi: don't use common_bufsiz as read buffer, it can be too small
(found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>)
-rw-r--r--editors/vi.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/editors/vi.c b/editors/vi.c
index 345a9452d..9426ab855 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -184,6 +184,7 @@ struct globals {
#if ENABLE_FEATURE_VI_COLON
char *initial_cmds[3]; // currently 2 entries, NULL terminated
#endif
+ char readbuffer[MAX_LINELEN];
};
#define G (*ptr_to_globals)
#define text (G.text )
@@ -200,6 +201,10 @@ struct globals {
#define term_orig (G.term_orig )
#define term_vi (G.term_vi )
#define initial_cmds (G.initial_cmds )
+#define readbuffer (G.readbuffer )
+#define INIT_G() do { \
+ PTR_TO_GLOBALS = xzalloc(sizeof(G)); \
+} while (0)
static int init_text_buffer(char *); // init from file or create new
static void edit_file(char *); // edit one file
@@ -321,7 +326,7 @@ int vi_main(int argc, char **argv)
my_pid = getpid();
#endif
- PTR_TO_GLOBALS = xzalloc(sizeof(G));
+ INIT_G();
#if ENABLE_FEATURE_VI_CRASHME
srand((long) my_pid);
@@ -2142,8 +2147,6 @@ static int mysleep(int hund) // sleep for 'h' 1/100 seconds
return safe_poll(pfd, 1, hund*10) > 0;
}
-#define readbuffer bb_common_bufsiz1
-
static int readed_for_parse;
//----- IO Routines --------------------------------------------