Mercurial > hg > openttd
changeset 9637:e580c1c5cf1f draft
(svn r13700) -Fix: possible buffer overflow in string truncation code.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Mon, 14 Jul 2008 18:22:15 +0000 |
parents | da2ee2eaa81b |
children | 2c22a7d5cf75 |
files | src/gfx.cpp |
diffstat | 1 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -256,9 +256,10 @@ w += GetCharacterWidth(size, c); if (w >= maxw) { - /* string got too big... insert dotdotdot */ - ddd_pos[0] = ddd_pos[1] = ddd_pos[2] = '.'; - ddd_pos[3] = '\0'; + /* string got too big... insert dotdotdot, but make sure we do not + * print anything beyond the string termination character. */ + for (int i = 0; *ddd_pos != '\0' && i < 3; i++, ddd_pos++) *ddd_pos = '.'; + *ddd_pos = '\0'; return ddd_w; } } else {