]> git.ipfire.org Git - thirdparty/git.git/commit - gettext.c
gettext: avoid using gettext if the locale dir is not present
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 22 Feb 2023 11:40:55 +0000 (12:40 +0100)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 17 Apr 2023 19:15:39 +0000 (21:15 +0200)
commitc4137be0f5a6edf9a9044e6e43ecf4468c7a4046
treeabd73aae72065684e2d02741b921dc5b061078c1
parent2f3b28f27234a0130583131a6785c44e3dd1cac4
gettext: avoid using gettext if the locale dir is not present

In cc5e1bf99247 (gettext: avoid initialization if the locale dir is not
present, 2018-04-21) Git was taught to avoid a costly gettext start-up
when there are not even any localized messages to work with.

But we still called `gettext()` and `ngettext()` functions.

Which caused a problem in Git for Windows when the libgettext that is
consumed from the MSYS2 project stopped using a runtime prefix in
https://github.com/msys2/MINGW-packages/pull/10461

Due to that change, we now use an unintialized gettext machinery that
might get auto-initialized _using an unintended locale directory_:
`C:\mingw64\share\locale`.

Let's record the fact when the gettext initialization was skipped, and
skip calling the gettext functions accordingly.

This addresses CVE-2023-25815.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
gettext.c
gettext.h