mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
conf_def.c: Avoid calling strlen() in a loop
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> (Merged from https://github.com/openssl/openssl/pull/10361)
This commit is contained in:
parent
26b7cc0d20
commit
d1c1fb2d41
@ -729,7 +729,9 @@ static BIO *process_include(char *include, OPENSSL_DIR_CTX **dirctx,
|
||||
static BIO *get_next_file(const char *path, OPENSSL_DIR_CTX **dirctx)
|
||||
{
|
||||
const char *filename;
|
||||
size_t pathlen;
|
||||
|
||||
pathlen = strlen(path);
|
||||
while ((filename = OPENSSL_DIR_read(dirctx, path)) != NULL) {
|
||||
size_t namelen;
|
||||
|
||||
@ -742,7 +744,7 @@ static BIO *get_next_file(const char *path, OPENSSL_DIR_CTX **dirctx)
|
||||
char *newpath;
|
||||
BIO *bio;
|
||||
|
||||
newlen = strlen(path) + namelen + 2;
|
||||
newlen = pathlen + namelen + 2;
|
||||
newpath = OPENSSL_zalloc(newlen);
|
||||
if (newpath == NULL) {
|
||||
CONFerr(CONF_F_GET_NEXT_FILE, ERR_R_MALLOC_FAILURE);
|
||||
@ -753,14 +755,11 @@ static BIO *get_next_file(const char *path, OPENSSL_DIR_CTX **dirctx)
|
||||
* If the given path isn't clear VMS syntax,
|
||||
* we treat it as on Unix.
|
||||
*/
|
||||
{
|
||||
size_t pathlen = strlen(path);
|
||||
|
||||
if (path[pathlen - 1] == ']' || path[pathlen - 1] == '>'
|
||||
|| path[pathlen - 1] == ':') {
|
||||
/* Clear VMS directory syntax, just copy as is */
|
||||
OPENSSL_strlcpy(newpath, path, newlen);
|
||||
}
|
||||
if (path[pathlen - 1] == ']'
|
||||
|| path[pathlen - 1] == '>'
|
||||
|| path[pathlen - 1] == ':') {
|
||||
/* Clear VMS directory syntax, just copy as is */
|
||||
OPENSSL_strlcpy(newpath, path, newlen);
|
||||
}
|
||||
#endif
|
||||
if (newpath[0] == '\0') {
|
||||
|
Loading…
Reference in New Issue
Block a user