Commit 5089c7ce authored by Laurent Vivier's avatar Laurent Vivier Committed by Riku Voipio
Browse files

linux-user: fix realloc size of target_fd_trans.



target_fd_trans is an array of "TargetFdTrans *": compute size
accordingly. Use g_renew() as proposed by Paolo.

Reported-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarLaurent Vivier <laurent@vivier.eu>
Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
parent 1b162409
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -318,8 +318,8 @@ static void fd_trans_register(int fd, TargetFdTrans *trans)
    if (fd >= target_fd_max) {
        oldmax = target_fd_max;
        target_fd_max = ((fd >> 6) + 1) << 6; /* by slice of 64 entries */
        target_fd_trans = g_realloc(target_fd_trans,
                                    target_fd_max * sizeof(TargetFdTrans));
        target_fd_trans = g_renew(TargetFdTrans *,
                                  target_fd_trans, target_fd_max);
        memset((void *)(target_fd_trans + oldmax), 0,
               (target_fd_max - oldmax) * sizeof(TargetFdTrans *));
    }