Commit 1f089c67 authored by Alex Bennée's avatar Alex Bennée
Browse files

target/xtensa: add FIXME for translation memory leak



Dynamically allocating a new structure within the DisasContext can
potentially leak as we can longjmp out of the translation loop (see
test_phys_mem). The proper fix would be to use static allocation
within the DisasContext but as the Xtensa translator imports it's code
from elsewhere I leave that as an exercise for the maintainer.

Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
Acked-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
Message-Id: <20200403191150.863-6-alex.bennee@linaro.org>
parent b859040d
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1174,6 +1174,11 @@ static void xtensa_tr_init_disas_context(DisasContextBase *dcbase,
    dc->callinc = ((tb_flags & XTENSA_TBFLAG_CALLINC_MASK) >>
                   XTENSA_TBFLAG_CALLINC_SHIFT);

    /*
     * FIXME: This will leak when a failed instruction load or similar
     * event causes us to longjump out of the translation loop and
     * hence not clean-up in xtensa_tr_tb_stop
     */
    if (dc->config->isa) {
        dc->insnbuf = xtensa_insnbuf_alloc(dc->config->isa);
        dc->slotbuf = xtensa_insnbuf_alloc(dc->config->isa);