diff options
author | Kevin Greenan <kmgreen2@gmail.com> | 2014-04-27 09:24:00 -0700 |
---|---|---|
committer | Kevin Greenan <kmgreen2@gmail.com> | 2014-04-27 09:24:00 -0700 |
commit | 9d53ea590b243170900d82111f6f04d75977e1cb (patch) | |
tree | 36e15e8098a104ecc50361ceb8874e2487176f9f | |
parent | 1559c2b51575c6ddd0005232e899ba1af4340610 (diff) | |
parent | df2c84d2322976b411fd6b1d60471fc3a0b8e74c (diff) | |
download | gf-complete-9d53ea590b243170900d82111f6f04d75977e1cb.tar.gz |
Merged in dalgaaf/gf-complete/wip-da-coverity-rebased (pull request #21)
Fixes for some issues found via Coverity in the Ceph project.
-rw-r--r-- | include/gf_int.h | 4 | ||||
-rw-r--r-- | src/gf.c | 15 | ||||
-rw-r--r-- | src/gf_general.c | 2 | ||||
-rw-r--r-- | src/gf_w16.c | 1 | ||||
-rw-r--r-- | src/gf_w32.c | 2 | ||||
-rw-r--r-- | src/gf_w4.c | 3 | ||||
-rw-r--r-- | src/gf_w8.c | 2 |
7 files changed, 17 insertions, 12 deletions
diff --git a/include/gf_int.h b/include/gf_int.h index 9221569..98294cc 100644 --- a/include/gf_int.h +++ b/include/gf_int.h @@ -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 */ @@ -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; } diff --git a/src/gf_general.c b/src/gf_general.c index b5ca7a9..8fcc737 100644 --- a/src/gf_general.c +++ b/src/gf_general.c @@ -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]); } } diff --git a/src/gf_w16.c b/src/gf_w16.c index f1fb650..272a95b 100644 --- a/src/gf_w16.c +++ b/src/gf_w16.c @@ -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) { diff --git a/src/gf_w32.c b/src/gf_w32.c index 1503c72..8f7790c 100644 --- a/src/gf_w32.c +++ b/src/gf_w32.c @@ -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) { diff --git a/src/gf_w4.c b/src/gf_w4.c index 2397d82..6bc79d0 100644 --- a/src/gf_w4.c +++ b/src/gf_w4.c @@ -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) { diff --git a/src/gf_w8.c b/src/gf_w8.c index d3e2bf6..a2a8600 100644 --- a/src/gf_w8.c +++ b/src/gf_w8.c @@ -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) { |