Commit 5c2ec54f authored by Bodo Möller's avatar Bodo Möller
Browse files

Make sure the return value of by_file_ctrl(..., X509_L_FILE_LOAD, ...)

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.
parent 73c55919
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -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)
			{
			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);
@@ -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());
				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)
				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;
		}