linux-user: Check array bounds in errno conversion

Check array bounds in host_to_target_errno() and target_to_host_errno().

Signed-off-by: Timothy Edward Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Message-id: 1441497448-32489-2-git-send-email-T.E.Baldwin99@members.leeds.ac.uk
[PMM: Add a lower-bound check, use braces on if(), tweak commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
Timothy E Baldwin 2016-05-12 18:47:25 +01:00 committed by Riku Voipio
parent 287db79df8
commit 2466119c95

View File

@ -619,15 +619,19 @@ static uint16_t host_to_target_errno_table[ERRNO_TABLE_SIZE] = {
static inline int host_to_target_errno(int err)
{
if(host_to_target_errno_table[err])
if (err >= 0 && err < ERRNO_TABLE_SIZE &&
host_to_target_errno_table[err]) {
return host_to_target_errno_table[err];
}
return err;
}
static inline int target_to_host_errno(int err)
{
if (target_to_host_errno_table[err])
if (err >= 0 && err < ERRNO_TABLE_SIZE &&
target_to_host_errno_table[err]) {
return target_to_host_errno_table[err];
}
return err;
}