From: Richard M. Stallman Date: Wed, 7 Apr 1999 05:48:00 +0000 (+0000) Subject: (x_to_w32_font): Provide sufficient buffer to encode_coding to avoid carryover. X-Git-Tag: emacs-20.4~366 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8ea3e054450cf4360594cd4bbf6cffba29e4a592;p=emacs.git (x_to_w32_font): Provide sufficient buffer to encode_coding to avoid carryover. --- diff --git a/src/w32fns.c b/src/w32fns.c index e0b1a5e5354..e11cf2c9e9b 100644 --- a/src/w32fns.c +++ b/src/w32fns.c @@ -5512,12 +5512,19 @@ x_to_w32_font (lpxstr, lplogfont) if (fields > 0 && name[0] != '*') { + int bufsize; + unsigned char *buf; + setup_coding_system (Fcheck_coding_system (Vw32_system_coding_system), &coding); + bufsize = encoding_buffer_size (&coding, strlen (name)); + buf = (unsigned char *) alloca (bufsize); coding.mode |= CODING_MODE_LAST_BLOCK; - encode_coding (&coding, name, lplogfont->lfFaceName, - strlen (name), LF_FACESIZE-1); - lplogfont->lfFaceName[coding.produced] = 0; + encode_coding (&coding, name, buf, strlen (name), bufsize); + if (coding.produced >= LF_FACESIZE) + coding.produced = LF_FACESIZE - 1; + buf[coding.produced] = 0; + strcpy (lplogfont->lfFaceName, buf); } else {