On Mon, Sep 20, 2004 at 10:22:14AM +0200, Bastian Blank wrote: > On Mon, Sep 20, 2004 at 12:49:57AM -0700, Steve Langasek wrote: > > Please try the attached patch to slang. > I did some cleanups on the patch. Some further changes. Bastian -- One does not thank logic. -- Sarek, "Journey to Babel", stardate 3842.4
diff -ur slang-1.4.9.orig/src/slsmg.c slang-1.4.9-utf8/src/slsmg.c --- slang-1.4.9.orig/src/slsmg.c 2004-09-20 09:17:58.000000000 +0200 +++ slang-1.4.9-utf8/src/slsmg.c 2004-09-20 10:53:52.000000000 +0200 @@ -309,7 +309,8 @@ if ((int) n < 0) return; - wptr = (wchar_t *)malloc(sizeof(wchar_t)*(n+1)); + size_t wptr_len = n + 1; + wptr = malloc(sizeof(wchar_t) * wptr_len); if (str != NULL && wptr != NULL) { @@ -328,6 +329,14 @@ str += k; n -= w; i++; + /* We have some null-width chars in the string and need more space */ + if (i >= wptr_len) { + wchar_t *new_wptr = realloc(wptr, sizeof(wchar_t) * wptr_len * 2); + if (!new_wptr) + break; + wptr_len *= 2; + wptr = new_wptr; + } } SLsmg_write_nwchars (wptr, i); }
Attachment:
signature.asc
Description: Digital signature