]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: ssl/cli: fix an error when a file is not found
authorWilliam Lallemand <wlallemand@haproxy.com>
Mon, 4 Nov 2019 13:02:11 +0000 (14:02 +0100)
committerWilliam Lallemand <wlallemand@haproxy.org>
Mon, 4 Nov 2019 13:11:41 +0000 (14:11 +0100)
When trying to update a certificate <file>.{rsa,ecdsa,dsa}, but this one
does not exist and if <file> was used as a regular file in the
configuration, the error was ambiguous. Correct it so we can return a
certificate not found error.

src/ssl_sock.c

index 7b2f1021cd50b2633e59fe645c3dd9c6586e08c1..88c0a01efd27ba7ef66a66103062272d3ce9a270 100644 (file)
@@ -10307,10 +10307,13 @@ static int cli_parse_set_cert(char **args, char *payload, struct appctx *appctx,
                                        errcode |= ERR_ALERT | ERR_FATAL;
                                        goto end;
                                }
-                               /* If we want a bundle but this is not a bundle */
-                               /* note that it should never happen */
-                               if (bundle >= 0 && find_ckchs[i]->multi == 0)
-                                       goto end;
+                               /* If we want a bundle but this is not a bundle
+                                * example: When you try to update <file>.rsa, but
+                                * <file> is a regular file */
+                               if (bundle >= 0 && find_ckchs[i]->multi == 0) {
+                                       find_ckchs[i] = NULL;
+                                       break;
+                               }
                        }
 #if HA_OPENSSL_VERSION_NUMBER >= 0x1000200fL
                        {