Merged in dalgaaf/gf-complete/wip-da-coverity-rebased (pull request #21)
Fixes for some issues found via Coverity in the Ceph project.master
commit
9d53ea590b
|
@ -154,8 +154,8 @@ typedef enum {GF_E_MDEFDIV, /* Dev != Default && Mult == Default */
|
|||
GF_E_SP128AR, /* Mult == SPLIT, w=128, Bad arg1/arg2 */
|
||||
GF_E_SP128AL, /* Mult == SPLIT, w=128, SSE requires ALTMAP */
|
||||
GF_E_SP128AS, /* Mult == SPLIT, w=128, ALTMAP requires SSE */
|
||||
GF_E_SP128_A, /* Mult == SPLIT, w=128, SSE only with 4/128 */
|
||||
GF_E_SP128_S, /* Mult == SPLIT, w=128, ALTMAP only with 4/128 */
|
||||
GF_E_SP128_A, /* Mult == SPLIT, w=128, ALTMAP only with 4/128 */
|
||||
GF_E_SP128_S, /* Mult == SPLIT, w=128, SSE only with 4/128 */
|
||||
GF_E_SPLIT_W, /* Mult == SPLIT, Bad w (8, 16, 32, 64, 128) */
|
||||
GF_E_SP_16AR, /* Mult == SPLIT, w=16, Bad arg1/arg2 */
|
||||
GF_E_SP_16_A, /* Mult == SPLIT, w=16, ALTMAP only with 4/16 */
|
||||
|
|
15
src/gf.c
15
src/gf.c
|
@ -85,8 +85,8 @@ void gf_error()
|
|||
case GF_E_SP128AR: s = "With -m SPLIT, w=128, bad arg1/arg2."; break;
|
||||
case GF_E_SP128AL: s = "With -m SPLIT, w=128, -r SSE requires -r ALTMAP."; break;
|
||||
case GF_E_SP128AS: s = "With -m SPLIT, w=128, ALTMAP needs SSSE3 supported."; break;
|
||||
case GF_E_SP128_A: s = "With -m SPLIT, w=128, -r SSE|NOSSE only with arg1/arg2 = 4/128."; break;
|
||||
case GF_E_SP128_S: s = "With -m SPLIT, w=128, -r ALTMAP only with arg1/arg2 = 4/128."; break;
|
||||
case GF_E_SP128_A: s = "With -m SPLIT, w=128, -r ALTMAP only with arg1/arg2 = 4/128."; break;
|
||||
case GF_E_SP128_S: s = "With -m SPLIT, w=128, -r SSE|NOSSE only with arg1/arg2 = 4/128."; break;
|
||||
case GF_E_SPLIT_W: s = "With -m SPLIT, w must be in {8, 16, 32, 64, 128}."; break;
|
||||
case GF_E_SP_16AR: s = "With -m SPLIT, w=16, Bad arg1/arg2."; break;
|
||||
case GF_E_SP_16_A: s = "With -m SPLIT, w=16, -r ALTMAP only with arg1/arg2 = 4/16."; break;
|
||||
|
@ -338,11 +338,12 @@ int gf_error_check(int w, int mult_type, int region_type, int divide_type,
|
|||
if (rsse && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
|
||||
if (raltmap) { _gf_errno = GF_E_SP_8__A; return 0; }
|
||||
} else if (w == 16) {
|
||||
if (arg1 == 4 && arg2 == 16) {
|
||||
if (rsse && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
|
||||
} else if (arg1 == 8 && (arg2 == 16 || arg2 == 8)) {
|
||||
if ((arg1 == 8 && arg2 == 8) ||
|
||||
(arg1 == 8 && arg2 == 16)) {
|
||||
if (rsse || rnosse) { _gf_errno = GF_E_SP_16_S; return 0; }
|
||||
if (raltmap) { _gf_errno = GF_E_SP_16_A; return 0; }
|
||||
} else if (arg1 == 4 && arg2 == 16) {
|
||||
if (rsse && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
|
||||
} else { _gf_errno = GF_E_SP_16AR; return 0; }
|
||||
} else if (w == 32) {
|
||||
if ((arg1 == 8 && arg2 == 8) ||
|
||||
|
@ -350,10 +351,8 @@ int gf_error_check(int w, int mult_type, int region_type, int divide_type,
|
|||
(arg1 == 16 && arg2 == 32)) {
|
||||
if (rsse || rnosse) { _gf_errno = GF_E_SP_32_S; return 0; }
|
||||
if (raltmap) { _gf_errno = GF_E_SP_32_A; return 0; }
|
||||
} else if ((arg1 == 4 && arg2 == 32) ||
|
||||
(arg1 == 4 && arg2 == 32)) {
|
||||
} else if (arg1 == 4 && arg2 == 32) {
|
||||
if (rsse && !sse3) { _gf_errno = GF_E_SP_SSE3; return 0; }
|
||||
if (raltmap && arg1 != 4) { _gf_errno = GF_E_SP_32_A; return 0; }
|
||||
if (raltmap && !sse3) { _gf_errno = GF_E_SP_32AS; return 0; }
|
||||
if (raltmap && rnosse) { _gf_errno = GF_E_SP_32AS; return 0; }
|
||||
} else { _gf_errno = GF_E_SP_32AR; return 0; }
|
||||
|
|
|
@ -240,7 +240,7 @@ int gf_general_are_equal(gf_general_t *v1, gf_general_t *v2, int w)
|
|||
return (v1->w64 == v2->w64);
|
||||
} else {
|
||||
return (v1->w128[0] == v2->w128[0] &&
|
||||
v1->w128[0] == v2->w128[0]);
|
||||
v1->w128[1] == v2->w128[1]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1817,6 +1817,7 @@ gf_w16_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
|
|
@ -1096,6 +1096,7 @@ gf_w32_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
@ -1139,6 +1140,7 @@ gf_w32_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
|
|
@ -793,7 +793,6 @@ int gf_w4_table_init(gf_t *gf)
|
|||
} else {
|
||||
return gf_w4_quad_table_init(gf);
|
||||
}
|
||||
return gf_w4_double_table_init(gf);
|
||||
} else {
|
||||
return gf_w4_single_table_init(gf);
|
||||
}
|
||||
|
@ -1584,6 +1583,7 @@ gf_w4_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
@ -1606,6 +1606,7 @@ gf_w4_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
|
|
@ -1932,6 +1932,7 @@ gf_w8_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (xor) {
|
||||
while (d64 < (uint64_t *) rd.d_top) {
|
||||
|
@ -1954,6 +1955,7 @@ gf_w8_bytwo_b_nosse_multiply_region(gf_t *gf, void *src, void *dest, gf_val_32_t
|
|||
s64++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
/*
|
||||
case 7:
|
||||
if (xor) {
|
||||
|
|
Loading…
Reference in New Issue