fix some oss-fuzz (#1224)

* 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.
This commit is contained in:
Chen Huitao 2020-03-24 16:23:04 +08:00 committed by GitHub
parent 8ff326a2a3
commit 930cb9ada8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 17 deletions

View File

@ -608,7 +608,7 @@ NEON_POP(pmax_u16, neon_u16, 2)
#undef NEON_FN
#define NEON_FN(dest, src1, src2) \
dest = (src1 > src2) ? (src1 - src2) : (src2 - src1)
dest = (src1 > src2) ? ((int64_t)src1 - (int64_t)src2) : ((int64_t)src2 - (int64_t)src1)
NEON_VOP(abd_s8, neon_s8, 4)
NEON_VOP(abd_u8, neon_u8, 4)
NEON_VOP(abd_s16, neon_s16, 2)
@ -1052,7 +1052,7 @@ uint64_t HELPER(neon_qrshl_u64)(CPUARMState *env, uint64_t val, uint64_t shiftop
if (tmp >= (ssize_t)sizeof(src1) * 8) { \
if (src1) { \
SET_QC(); \
dest = (1 << (sizeof(src1) * 8 - 1)); \
dest = (uint32_t)(1U << (sizeof(src1) * 8 - 1)); \
if (src1 > 0) { \
dest--; \
} \
@ -1067,7 +1067,7 @@ uint64_t HELPER(neon_qrshl_u64)(CPUARMState *env, uint64_t val, uint64_t shiftop
dest = ((uint64_t)src1) << tmp; \
if ((dest >> tmp) != src1) { \
SET_QC(); \
dest = (uint32_t)(1 << (sizeof(src1) * 8 - 1)); \
dest = (uint32_t)(1U << (sizeof(src1) * 8 - 1)); \
if (src1 > 0) { \
dest--; \
} \
@ -1133,7 +1133,7 @@ uint64_t HELPER(neon_qrshl_s64)(CPUARMState *env, uint64_t valop, uint64_t shift
}
} else {
int64_t tmp = val;
val <<= shift;
val = (uint64_t)val << (shift & 0x3f);
if ((val >> shift) != tmp) {
SET_QC();
val = (tmp >> 63) ^ ~SIGNBIT64;

View File

@ -6144,7 +6144,7 @@ static int disas_neon_data_insn(DisasContext *s, uint32_t insn)
val = 0;
for (n = 0; n < 4; n++) {
if (imm & (1 << (n + (pass & 1) * 4)))
val |= 0xff << (n * 8);
val |= 0xffU << (n * 8);
}
tcg_gen_movi_i32(tcg_ctx, tmp, val);
} else {
@ -11127,7 +11127,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
/* jump to the offset */
val = (uint32_t)s->pc + 2;
offset = ((int32_t)((uint32_t)insn << 24)) >> 24;
val += offset << 1;
val += (int32_t)((uint32_t)offset << 1);
gen_jmp(s, val);
break;
@ -11140,7 +11140,7 @@ static void disas_thumb_insn(CPUARMState *env, DisasContext *s) // qq
/* unconditional branch */
val = (uint32_t)s->pc;
offset = ((int32_t)((uint32_t)insn << 21)) >> 21;
val += (offset << 1) + 2;
val += (int32_t)((uint32_t)offset << 1) + 2;
gen_jmp(s, val);
break;

View File

@ -1471,7 +1471,7 @@ void glue(helper_phsubd, SUFFIX)(CPUX86State *env, Reg *d, Reg *s)
{
d->L(0) = (int32_t)((int64_t)d->L(0) - (int64_t)d->L(1));
XMM_ONLY(d->L(1) = (int32_t)((int64_t)d->L(2) - (int64_t)d->L(3)));
d->L((1 << SHIFT) + 0) = (uint32_t)((int32_t)s->L(0) - (int32_t)s->L(1));
d->L((1 << SHIFT) + 0) = (uint32_t)((int64_t)s->L(0) - (int64_t)s->L(1));
XMM_ONLY(d->L(3) = (int32_t)s->L(2) - (int32_t)s->L(3));
}

View File

@ -210,8 +210,8 @@ void HELPER(divs)(CPUM68KState *env, uint32_t word)
if (den == 0) {
raise_exception(env, EXCP_DIV0);
}
quot = num / den;
rem = num % den;
quot = (int64_t)num / den;
rem = (int64_t)num % den;
flags = 0;
if (word && quot != (int16_t)quot)
flags |= CCF_V;

View File

@ -1170,7 +1170,7 @@ DISAS_INSN(bitop_im)
bitnum &= 7;
else
bitnum &= 31;
mask = 1 << bitnum;
mask = 1U << bitnum;
tmp = tcg_temp_new(tcg_ctx);
assert (CCF_Z == (1 << 2));

View File

@ -3394,7 +3394,7 @@ static void gen_r6_muldiv(DisasContext *ctx, int opc, int rd, int rs, int rt)
{
TCGv t2 = tcg_temp_new(tcg_ctx);
TCGv t3 = tcg_temp_new(tcg_ctx);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1LL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1ULL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, -1LL);
tcg_gen_and_tl(tcg_ctx, t2, t2, t3);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, 0);
@ -3411,7 +3411,7 @@ static void gen_r6_muldiv(DisasContext *ctx, int opc, int rd, int rs, int rt)
{
TCGv t2 = tcg_temp_new(tcg_ctx);
TCGv t3 = tcg_temp_new(tcg_ctx);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1LL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1ULL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, -1LL);
tcg_gen_and_tl(tcg_ctx, t2, t2, t3);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, 0);
@ -3574,7 +3574,7 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc,
{
TCGv t2 = tcg_temp_new(tcg_ctx);
TCGv t3 = tcg_temp_new(tcg_ctx);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1LL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t2, t0, -1ULL << 63);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, -1LL);
tcg_gen_and_tl(tcg_ctx, t2, t2, t3);
tcg_gen_setcondi_tl(tcg_ctx, TCG_COND_EQ, t3, t1, 0);
@ -3983,7 +3983,7 @@ static void gen_loongson_integer(DisasContext *ctx, uint32_t opc,
tcg_gen_movi_tl(tcg_ctx, *cpu_gpr[rd], 0);
tcg_gen_br(tcg_ctx, l3);
gen_set_label(tcg_ctx, l1);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t0, -1LL << 63, l2);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t0, -1ULL << 63, l2);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t1, -1LL, l2);
tcg_gen_mov_tl(tcg_ctx, *cpu_gpr[rd], t0);
tcg_gen_br(tcg_ctx, l3);
@ -4014,7 +4014,7 @@ static void gen_loongson_integer(DisasContext *ctx, uint32_t opc,
int l2 = gen_new_label(tcg_ctx);
int l3 = gen_new_label(tcg_ctx);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_EQ, t1, 0, l1);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t0, -1LL << 63, l2);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t0, -1ULL << 63, l2);
tcg_gen_brcondi_tl(tcg_ctx, TCG_COND_NE, t1, -1LL, l2);
gen_set_label(tcg_ctx, l1);
tcg_gen_movi_tl(tcg_ctx, *cpu_gpr[rd], 0);

View File

@ -132,7 +132,7 @@ int64_t strtosz_suffix_unit(const char *nptr, char **end,
if (mul == 1 && mul_required) {
goto fail;
}
if ((val * mul >= INT64_MAX) || val < 0) {
if ((val * mul >= (double)INT64_MAX) || val < 0) {
retval = -ERANGE;
goto fail;
}