Make sure the return value of by_file_ctrl(..., X509_L_FILE_LOAD, ...)
authorBodo Möller <bodo@openssl.org>
Thu, 17 Feb 2000 21:04:40 +0000 (21:04 +0000)
committerBodo Möller <bodo@openssl.org>
Thu, 17 Feb 2000 21:04:40 +0000 (21:04 +0000)
aka X509_LOOKUP_load_file(...) is always 0 or 1, not the counter
returned from the recently introduced function X509_load_cert_crl_file.
X509_STORE_load_locations expects X509_LOOKUP_load_file to return 1 on
success, and possibly there's other software that relies on this too.

crypto/x509/by_file.c

index 78b4c47751b12ed2918b440614a77cf225e8213c..78e9240a8d0973da02a958b08a53113baa4b4207 100644 (file)
@@ -100,8 +100,8 @@ static int by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,
        case X509_L_FILE_LOAD:
                if (argl == X509_FILETYPE_DEFAULT)
                        {
        case X509_L_FILE_LOAD:
                if (argl == X509_FILETYPE_DEFAULT)
                        {
-                       ok=X509_load_cert_crl_file(ctx,X509_get_default_cert_file(),
-                               X509_FILETYPE_PEM);
+                       ok = (X509_load_cert_crl_file(ctx,X509_get_default_cert_file(),
+                               X509_FILETYPE_PEM) != 0);
                        if (!ok)
                                {
                                X509err(X509_F_BY_FILE_CTRL,X509_R_LOADING_DEFAULTS);
                        if (!ok)
                                {
                                X509err(X509_F_BY_FILE_CTRL,X509_R_LOADING_DEFAULTS);
@@ -109,16 +109,17 @@ static int by_file_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl,
                        else
                                {
                                file=(char *)Getenv(X509_get_default_cert_file_env());
                        else
                                {
                                file=(char *)Getenv(X509_get_default_cert_file_env());
-                               ok=X509_load_cert_crl_file(ctx,file,
-                                       X509_FILETYPE_PEM);
+                               ok = (X509_load_cert_crl_file(ctx,file,
+                                       X509_FILETYPE_PEM) != 0);
                                }
                        }
                else
                        {
                        if(argl == X509_FILETYPE_PEM)
                                }
                        }
                else
                        {
                        if(argl == X509_FILETYPE_PEM)
-                               ok=X509_load_cert_crl_file(ctx,argp,
-                                       X509_FILETYPE_PEM);
-                       else ok=X509_load_cert_file(ctx,argp,(int)argl);
+                               ok = (X509_load_cert_crl_file(ctx,argp,
+                                       X509_FILETYPE_PEM) != 0);
+                       else
+                               ok = (X509_load_cert_file(ctx,argp,(int)argl) != 0);
                        }
                break;
                }
                        }
                break;
                }