]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: ssl/crt-list: bundle support broken in crt-list
authorWilliam Lallemand <wlallemand@haproxy.com>
Fri, 20 Nov 2020 13:23:38 +0000 (14:23 +0100)
committerWilliam Lallemand <wlallemand@haproxy.org>
Fri, 20 Nov 2020 17:38:51 +0000 (18:38 +0100)
In issue #970 it was reported that the bundle loading does not work
anymore with crt-list.

This bug was introduced by 47da821 ("MEDIUM: ssl: emulates the
multi-cert bundles in the crtlist") which incorrectly uses "path"
instead of "crt_path" in the name resolution.

Must be backported to 2.3.

src/ssl_crtlist.c

index 5f5942b93fa39e8c7b0918b00682abee8ed8e3ce..ac2d849f60dbba9d5b7be8dea614ea527661283a 100644 (file)
@@ -447,7 +447,6 @@ int crtlist_parse_file(char *file, struct bind_conf *bind_conf, struct proxy *cu
        struct crtlist *newlist;
        struct crtlist_entry *entry = NULL;
        char thisline[CRT_LINESIZE];
-       char path[MAXPATHLEN+1];
        FILE *f;
        struct stat buf;
        int linenum = 0;
@@ -470,6 +469,7 @@ int crtlist_parse_file(char *file, struct bind_conf *bind_conf, struct proxy *cu
                char *end;
                char *line = thisline;
                char *crt_path;
+               char path[MAXPATHLEN+1];
                struct ckch_store *ckchs;
 
                if (missing_lf != -1) {
@@ -564,7 +564,7 @@ int crtlist_parse_file(char *file, struct bind_conf *bind_conf, struct proxy *cu
                                        struct stat buf;
                                        int ret;
 
-                                       ret = snprintf(fp, sizeof(fp), "%s.%s", path, SSL_SOCK_KEYTYPE_NAMES[n]);
+                                       ret = snprintf(fp, sizeof(fp), "%s.%s", crt_path, SSL_SOCK_KEYTYPE_NAMES[n]);
                                        if (ret > sizeof(fp))
                                                continue;