Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Nov 2015 18:31:16 +0300
From:      Andrey Chernov <ache@freebsd.org>
To:        Baptiste Daroussin <bapt@freebsd.org>
Cc:        Ed Schouten <ed@nuxi.nl>, Jilles Tjoelker <jilles@stack.nl>, "Sergey V. Dyatko" <sergey.dyatko@gmail.com>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: /bin/ls formatting broken for non-C(?) locales
Message-ID:  <5655D444.1050901@freebsd.org>
In-Reply-To: <5655CFC6.7010805@freebsd.org>
References:  <20151120122352.GA5751@stack.nl> <20151121003541.GF21071@ivaldir.etoilebsd.net> <CABh_MK=cz-zB7krcnKjhqfW9VnwjSmuaZ9%2BAETQiLy3AsHq_vw@mail.gmail.com> <5650DACA.2090501@freebsd.org> <20151125001513.GC70014@ivaldir.etoilebsd.net> <56550F69.8050609@freebsd.org> <20151125125325.GB77370@ivaldir.etoilebsd.net> <5655B8D9.8060805@freebsd.org> <20151125135059.GC77370@ivaldir.etoilebsd.net> <5655C059.8010701@freebsd.org> <20151125143501.GD77370@ivaldir.etoilebsd.net> <5655CFC6.7010805@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--6nvnRbobn61DaVsGeJX1Q82hKaGq0dNca
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

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 encod=
ed,
>>> not for wide chars.
>> Bad copy/paste sorry it should be "MAX_ABMON_WIDTH * 2"
>=20
> 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
>=20

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 =3D=3D first * sizeof(wchar_t)
it will be safe for not overflowing.

--=20
http://ache.vniz.net/


--6nvnRbobn61DaVsGeJX1Q82hKaGq0dNca
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJWVdRFAAoJEKUckv0MjfbKRAAIALIDShwfnPee9sDd/y88jWQW
fJZ2ADPaciWeFoNSIjf0We/+eDYVKv8zrZ/P0pAAsR8kxQXS+n9+Y3tU2bUfhIOJ
ux7eyLAKQSoKCBS+7O88euAxK9Dfape6W6qKD4M1PNXStMhPJRJwndCopsidRGx+
dfo+1zVnaUklsj2FwPlN0VphKOLgzP86QRh/JochaDZioakPIgTViLVM7LCfSzLa
qyHoHunxcmIF689MpbWvbzjiPIbBzxNqsaExEuYkpdkhc2dTu2QdNEp7vKFV2rWZ
iqyq0b3EyELTuLllXLMR8jOPtAhVH2CQCUBICMQ1RkILC1kvYTaPUg0oMn6Q6Hk=
=7bOv
-----END PGP SIGNATURE-----

--6nvnRbobn61DaVsGeJX1Q82hKaGq0dNca--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5655D444.1050901>