--- openssl-1.0.0f-origin/crypto/x509/by_dir.c 2012-01-19 02:20:24.821550944 +0800 +++ openssl-1.0.0f/crypto/x509/by_dir.c 2012-01-19 23:36:53.597870429 +0800 @@ -287,6 +287,8 @@ int ok=0; int i,j,k; unsigned long h; + unsigned long hash_array[2]; + int hash_index; BUF_MEM *b=NULL; X509_OBJECT stmp,*tmp; const char *postfix=""; @@ -323,6 +325,11 @@ ctx=(BY_DIR *)xl->method_data; h=X509_NAME_hash(name); + hash_array[0]=h; + hash_array[1]=X509_NAME_hash_old(name); + for (hash_index=0; hash_index < 2; hash_index++) + { + h=hash_array[hash_index]; for (i=0; i < sk_BY_DIR_ENTRY_num(ctx->dirs); i++) { BY_DIR_ENTRY *ent; @@ -476,6 +483,7 @@ goto finish; } } + } finish: if (b != NULL) BUF_MEM_free(b); return(ok);