From 4d7193eeb39314b79e654ca1c1f62d911af4aea4 Mon Sep 17 00:00:00 2001 From: Chen Huitao Date: Wed, 8 Apr 2020 03:37:12 +0800 Subject: [PATCH] fix some oss-fuzz (#1229) * fix oss-fuzz 18138. * fix oss-fuzz 20079. * fix oss-fuzz 20209. * fix oss-fuzz 20210. * fix oss-fuzz 20262. * rollback. * rollback. * fix oss-fuzz 20079. * fix oss-fuzz 20179. * fix oss-fuzz 20195. * fix oss-fuzz 20206. * fix oss-fuzz 20207. * fix oss-fuzz 20265. * fix oss-fuzz 20285. * fix oss-fuzz 20868. * fix oss-fuzz 20908. * fix oss-fuzz 20909. * fix oss-fuzz 20914. * fix oss-fuzz 20922. * fix oss-fuzz 20928. * remove warnigs. * fix oss-fuzz 20961. * fix oss-fuzz 21005. * remove clang warnings. * fix oss-fuzz 21043. * fix oss-fuzz 21047. * fix oss-fuzz 21050. * fix oss-fuzz 21219. * fix oss-fuzz 21380. * fix oss-fuzz 21455. * fix oss-fuzz 21458. --- qemu/target-arm/neon_helper.c | 2 +- qemu/target-i386/int_helper.c | 2 +- qemu/target-i386/ops_sse.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qemu/target-arm/neon_helper.c b/qemu/target-arm/neon_helper.c index 6838e7cc..308fd713 100644 --- a/qemu/target-arm/neon_helper.c +++ b/qemu/target-arm/neon_helper.c @@ -688,7 +688,7 @@ uint64_t HELPER(neon_shl_s64)(uint64_t valop, uint64_t shiftop) } else if (tmp < 0) { \ dest = (src1 + (1 << (-1 - tmp))) >> -tmp; \ } else { \ - dest = src1 << tmp; \ + dest = (uint64_t)src1 << tmp; \ }} while (0) NEON_VOP(rshl_s8, neon_s8, 4) NEON_VOP(rshl_s16, neon_s16, 2) diff --git a/qemu/target-i386/int_helper.c b/qemu/target-i386/int_helper.c index b79b2242..0de38c1c 100644 --- a/qemu/target-i386/int_helper.c +++ b/qemu/target-i386/int_helper.c @@ -105,7 +105,7 @@ void helper_idivw_AX(CPUX86State *env, target_ulong t0) if (den == 0) { raise_exception(env, EXCP00_DIVZ); } - q = (num / den); + q = ((int64_t)num / den); if (q != (int16_t)q) { raise_exception(env, EXCP00_DIVZ); } diff --git a/qemu/target-i386/ops_sse.h b/qemu/target-i386/ops_sse.h index 9a682deb..3d49fcc7 100644 --- a/qemu/target-i386/ops_sse.h +++ b/qemu/target-i386/ops_sse.h @@ -1415,7 +1415,7 @@ void glue(helper_phaddw, SUFFIX)(CPUX86State *env, Reg *d, Reg *s) void glue(helper_phaddd, SUFFIX)(CPUX86State *env, Reg *d, Reg *s) { - d->L(0) = (int32_t)d->L(0) + (int32_t)d->L(1); + d->L(0) = (int64_t)d->L(0) + (int32_t)d->L(1); XMM_ONLY(d->L(1) = (int32_t)d->L(2) + (int32_t)d->L(3)); d->L((1 << SHIFT) + 0) = (uint32_t)((int32_t)s->L(0) + (uint32_t)s->L(1)); XMM_ONLY(d->L(3) = (int32_t)s->L(2) + (int32_t)s->L(3));