mirror of https://github.com/openssl/openssl.git
Revert "Reuse strndup(), simplify code"
This reverts commit 1caaea1338.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4357)
This commit is contained in:
parent
4cacc9d510
commit
582e2ed271
|
|
@ -150,7 +150,8 @@ static void free_dir(X509_LOOKUP *lu)
|
|||
|
||||
static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
|
||||
{
|
||||
const char *s, *p;
|
||||
int j, len;
|
||||
const char *s, *ss, *p;
|
||||
|
||||
if (dir == NULL || !*dir) {
|
||||
X509err(X509_F_ADD_CERT_DIR, X509_R_INVALID_DIRECTORY);
|
||||
|
|
@ -162,17 +163,15 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
|
|||
do {
|
||||
if ((*p == LIST_SEPARATOR_CHAR) || (*p == '\0')) {
|
||||
BY_DIR_ENTRY *ent;
|
||||
int j;
|
||||
size_t len;
|
||||
const char *ss = s;
|
||||
ss = s;
|
||||
s = p + 1;
|
||||
len = p - ss;
|
||||
len = (int)(p - ss);
|
||||
if (len == 0)
|
||||
continue;
|
||||
for (j = 0; j < sk_BY_DIR_ENTRY_num(ctx->dirs); j++) {
|
||||
ent = sk_BY_DIR_ENTRY_value(ctx->dirs, j);
|
||||
if (strlen(ent->dir) == len &&
|
||||
strncmp(ent->dir, ss, len) == 0)
|
||||
if (strlen(ent->dir) == (size_t)len &&
|
||||
strncmp(ent->dir, ss, (unsigned int)len) == 0)
|
||||
break;
|
||||
}
|
||||
if (j < sk_BY_DIR_ENTRY_num(ctx->dirs))
|
||||
|
|
@ -189,11 +188,13 @@ static int add_cert_dir(BY_DIR *ctx, const char *dir, int type)
|
|||
return 0;
|
||||
ent->dir_type = type;
|
||||
ent->hashes = sk_BY_DIR_HASH_new(by_dir_hash_cmp);
|
||||
ent->dir = OPENSSL_strndup(ss, len);
|
||||
ent->dir = OPENSSL_malloc((unsigned int)len + 1);
|
||||
if (ent->dir == NULL || ent->hashes == NULL) {
|
||||
by_dir_entry_free(ent);
|
||||
return 0;
|
||||
}
|
||||
strncpy(ent->dir, ss, (unsigned int)len);
|
||||
ent->dir[len] = '\0';
|
||||
if (!sk_BY_DIR_ENTRY_push(ctx->dirs, ent)) {
|
||||
by_dir_entry_free(ent);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue