* Herbert Xu | 2009-07-02 16:32:59 [+0800]:

>--- a/crypto/testmgr.c
>+++ b/crypto/testmgr.c
>@@ -2365,14 +2366,22 @@ int alg_test(const char *driver, const char *alg, u32 
>type, u32 mask)
>       }
> 
>       i = alg_find_test(alg);
>-      if (i < 0)
>+      j = alg_find_test(driver);
>+      if (i < 0 && j < 0)
>               goto notest;
> 
>-      if (fips_enabled && !alg_test_descs[i].fips_allowed)
>+      if (fips_enabled && ((i >= 0 && !alg_test_descs[i].fips_allowed) ||
>+                           (j >= 0 && !alg_test_descs[j].fips_allowed)))
>               goto non_fips_alg;
> 
>-      rc = alg_test_descs[i].test(alg_test_descs + i, driver,
>-                                    type, mask);
>+      rc = 0;
>+      if (i >= 0)
>+              rc |= alg_test_descs[i].test(alg_test_descs + i, driver,
>+                                           type, mask);
>+      if (j >= 0)
>+              rc |= alg_test_descs[j].test(alg_test_descs + j, driver,
>+                                           type, mask);

Do you execute test2 if test1 failed on purpose?
If not what about:

        if (!rc && j >= 0)
                rc = alg_test_descs[j].test(alg_test_descs + j, driver,
                                             type, mask);

so there is return code mixup.

Sebastian
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to