From 8ea3e054450cf4360594cd4bbf6cffba29e4a592 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 7 Apr 1999 05:48:00 +0000 Subject: [PATCH] (x_to_w32_font): Provide sufficient buffer to encode_coding to avoid carryover. --- src/w32fns.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/w32fns.c b/src/w32fns.c index e0b1a5e535..e11cf2c9e9 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 { -- 2.20.1