Merged in dalgaaf/gf-complete/wip-da-coverity-rebased (pull request #21)

Fixes for some issues found via Coverity in the Ceph project.
master
Kevin Greenan 2014-04-27 09:24:00 -07:00
commit 9d53ea590b
7 changed files with 17 additions and 12 deletions

View File

@ -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 */

View File

@ -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; }

View File

@ -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]);
}
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {