vi: don't use common_bufsiz as read buffer, it can be too small
authorDenis Vlasenko <vda.linux@googlemail.com>
Sun, 9 Dec 2007 04:13:43 +0000 (04:13 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Sun, 9 Dec 2007 04:13:43 +0000 (04:13 -0000)
(found by Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>)

editors/vi.c

index 345a9452d8b2711e4ed527ffb42cd0ee4bc5c684..9426ab855588e34f496bf04917debbac36d4ac0e 100644 (file)
@@ -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 --------------------------------------------