From 66c4bb1a70ba9cac8fd90dc80dbc3f4ff08cf62a Mon Sep 17 00:00:00 2001 From: Nils Larsch Date: Tue, 5 Dec 2006 21:21:10 +0000 Subject: [PATCH] avoid duplicate entries in add_cert_dir() PR: 1407 Submitted by: Tomas Mraz --- crypto/x509/by_dir.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c index ea689aed1a..f33ea7b84f 100644 --- a/crypto/x509/by_dir.c +++ b/crypto/x509/by_dir.c @@ -189,7 +189,7 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) s=dir; p=s; - for (;;) + for (;;p++) { if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0')) { @@ -198,8 +198,11 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) len=(int)(p-ss); if (len == 0) continue; for (j=0; jnum_dirs; j++) - if (strncmp(ctx->dirs[j],ss,(unsigned int)len) == 0) - continue; + if (strlen(ctx->dirs[j]) == len && + strncmp(ctx->dirs[j],ss,(unsigned int)len) == 0) + break; + if (jnum_dirs) + continue; if (ctx->num_dirs_alloced < (ctx->num_dirs+1)) { ctx->num_dirs_alloced+=10; @@ -231,7 +234,6 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) ctx->num_dirs++; } if (*p == '\0') break; - p++; } return(1); } -- 2.25.1