On 25.11.2015 18:12, Andrey Chernov wrote: > On 25.11.2015 17:35, Baptiste Daroussin wrote: >>> BTW, array size looks suspicious: >>> static wchar_t wab_months[12][MAX_ABMON_WIDTH * 2 * MB_LEN_MAX]; >>> what MB_LEN_MAX doing here? This constant is for multiple-bytes encoded, >>> not for wide chars. >> Bad copy/paste sorry it should be "MAX_ABMON_WIDTH * 2" > > I don't check deep enough, it seems first array > MAX_ABMON_WIDTH * MB_LEN_MAX + 1 > and second one > MAX_ABMON_WIDTH * 2 + 1 > No. We can't assume anything here and should integrate limits from the locale for months fields instead. F.e. in abstract general case in wide array can be 100 zero-width characters + 5 of normal characters, so width-oriented sizes not prevents overflowing. First array size should be from locale internals, second one == first * sizeof(wchar_t) it will be safe for not overflowing. -- http://ache.vniz.net/
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC