summaryrefslogtreecommitdiff
path: root/src/vehicle_gui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/vehicle_gui.cpp')
-rw-r--r--src/vehicle_gui.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index 0cb5307d9..2aa2f193e 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -506,6 +506,8 @@ uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine)
for (CargoID cid = 0; cid < NUM_CARGO; cid++) {
if (!HasBit(cmask, cid)) continue;
+ if (b >= lastof(_userstring) - (2 + 2 * 4)) break; // ", " and two calls to Utf8Encode()
+
if (!first) b = strecpy(b, ", ", lastof(_userstring));
first = false;
@@ -515,6 +517,10 @@ uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine)
/* Terminate and display the completed string */
*b = '\0';
+
+ /* Make sure we detect any buffer overflow */
+ assert(b < endof(_userstring));
+
return DrawStringMultiLine(x, y, STR_SPEC_USERSTRING, w);
}