Subject: Bug in initialization with exotic locale

From: Pavel Dovgalyuk <[email-masked]>
Date: Fri, 23 Jun 2023 10:48:38 +0300

The following call sequence can cause an exception, when the locale is 
not supported:

init_build_info -> scm_from_locale_string -> ... -> decoding_error

Then function scm_throw tries to access throw_var.
But this variable is not initialized yet, beacuse it is initialized in 
scm_init_throw, which will be called later.

Therefore access to throw_var in init_build_info causes segmentation fault.

How to reproduce:

podman run --net=host -it fedora:36 \
    /bin/sh -c 'dnf install -y gdb  glibc-langpack-ru && export 
LC_ALL=ru_RU.KOI8-R; exec gdb'

--
Pavel Dovgalyuk