Hey Valerii, it's Paul :D Anyhow, I would really like to affirm that the fix I have above is the fix. Base in the code in terminal.c. ... 865 protected int 866 terminal_set(EditLine *el, const char *term) 867 { 868 int i; 869 char buf[TC_BUFSIZE]; 870 char *area; 871 const struct termcapstr *t; 872 sigset_t oset, nset; 873 int lins, cols; 874 875 (void) sigemptyset(&nset); 876 (void) sigaddset(&nset, SIGWINCH); 877 (void) sigprocmask(SIG_BLOCK, &nset, &oset); 878 879 area = buf; 880 881 882 if (term == NULL) 883 term = getenv("TERM"); 884 885 if (!term || !term[0]) 886 term = "dumb"; 887 888 if (strcmp(term, "emacs") == 0) 889 el->el_flags |= EDIT_DISABLED; 890 891 memset(el->el_terminal.t_cap, 0, TC_BUFSIZE); 892 893 i = tgetent(el->el_terminal.t_cap, term); 894 895 if (i <= 0) { 896 if (i == -1) 897 (void) fprintf(el->el_errfile, 898 "Cannot read termcap database;\n"); 899 else if (i == 0) 900 (void) fprintf(el->el_errfile, 901 "No entry for terminal type \"%s\";\n", term); 902 (void) fprintf(el->el_errfile, 903 "using dumb terminal settings.\n"); 904 Val(T_co) = 80; /* do a dumb terminal */ 905 Val(T_pt) = Val(T_km) = Val(T_li) = 0; 906 Val(T_xt) = Val(T_MT); 907 for (t = tstr; t->name != NULL; t++) 908 terminal_alloc(el, t, NULL); 909 } else { 910 /* auto/magic margins */ 911 Val(T_am) = tgetflag("am"); 912 Val(T_xn) = tgetflag("xn"); 913 /* Can we tab */ 914 Val(T_pt) = tgetflag("pt"); 915 Val(T_xt) = tgetflag("xt"); 916 /* do we have a meta? */ 917 Val(T_km) = tgetflag("km"); 918 Val(T_MT) = tgetflag("MT"); 919 /* Get the size */ 920 Val(T_co) = tgetnum("co"); 921 Val(T_li) = tgetnum("li"); 922 for (t = tstr; t->name != NULL; t++) { 923 /* XXX: some systems' tgetstr needs non const */ 924 terminal_alloc(el, t, tgetstr(strchr(t->name, *t->name), 925 &area)); 926 } 927 } 928 929 if (Val(T_co) < 2) 930 Val(T_co) = 80; /* just in case */ 931 if (Val(T_li) < 1) 932 Val(T_li) = 24; 933 934 el->el_terminal.t_size.v = Val(T_co); 935 el->el_terminal.t_size.h = Val(T_li); 936 937 terminal_setflags(el); 938 939 /* get the correct window size */ 940 (void) terminal_get_size(el, &lins, &cols); 941 if (terminal_change_size(el, lins, cols) == -1) 942 return -1; 943 (void) sigprocmask(SIG_SETMASK, &oset, NULL); 944 terminal_bind_arrow(el); 945 el->el_terminal.t_name = term; 946 return i <= 0 ? -1 : 0; 947 } ... variable "area" is assigned with an unassigned variable called "buf" which "buf" is declared in line 869. This is a local variable and is not referenced or assigned to a global variable or any local variable in the function. Variable area is only assigned once which found at line 879. Thus, this returns an error of "array out of bounds" (cap=0xffffffffffffd750
) because variable "cap" is a pointer to the character type array where cap has undefined value, and is the third parameter to function "private void terminal_alloc(EditLine *el, const struct termcapstr *t, const char *cap) ". With regards to my packages, additional info are seen below: - glibc-2.12-1.107.el6.x86_64 - libgcc-4.4.7-3.el6.x86_64 - libstdc++-4.4.7-3.el6.x86_64 - ncurses-libs-5.7-3.20090208.el6.x86_64 The process on how did I install it or build it is by, # tar xzvf Percona-Server-5.6.12-rc60.4.tar.gz # cmake . # make # make install