diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-12-09 04:13:43 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-12-09 04:13:43 +0000 |
commit | a96425fe827c603b9c576c95f12b885af68eb219 (patch) | |
tree | 129ac8cb735e60e713cdf8dcf77548797a7b90ba | |
parent | b851c42a1445c67159279d8af59965e092268ce6 (diff) | |
download | busybox-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.c | 9 |
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 -------------------------------------------- |