# HG changeset patch # User smatz # Date 1202042466 0 # Node ID 6c5738316dcd07ad290ada131cd24433cf03b7d2 # Parent b4303c7799a19bc378f038963f0075d1c349b41e (svn r12049) -Fix (r10496)(r10619): memset on multibyte array with wrong byte count diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -57,6 +57,9 @@ bool enabled[NUM_INDUSTRYTYPES + 1]; ///< availability state, coming from CBID_INDUSTRY_AVAILABLE (if ever) } _fund_gui; +assert_compile(lengthof(_fund_gui.index) == lengthof(_fund_gui.text)); +assert_compile(lengthof(_fund_gui.index) == lengthof(_fund_gui.enabled)); + static void BuildDynamicIndustryWndProc(Window *w, WindowEvent *e) { switch (e->event) { @@ -79,11 +82,14 @@ WP(w, fnd_d).timer_enabled = _loaded_newgrf_features.has_newindustries; /* Initilialize structures */ - memset(&_fund_gui.index, 0xFF, NUM_INDUSTRYTYPES); - memset(&_fund_gui.text, STR_NULL, NUM_INDUSTRYTYPES); - memset(&_fund_gui.enabled, false, NUM_INDUSTRYTYPES); _fund_gui.count = 0; + for (uint i = 0; i < lengthof(_fund_gui.index); i++) { + _fund_gui.index[i] = 0xFF; + _fund_gui.text[i] = STR_NULL; + _fund_gui.enabled[i] = false; + } + w->vscroll.cap = 8; // rows in grid, same in scroller w->resize.step_height = 13;