]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
only set secret_len if there's a secret
authorAlan T. DeKok <aland@freeradius.org>
Wed, 8 Mar 2023 21:14:00 +0000 (16:14 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 8 Mar 2023 21:14:22 +0000 (16:14 -0500)
and secrets may be binary blobs

src/listen/bfd/proto_bfd.c

index 19b75704fbe4f69eef3b471068a8e8dbd928fd7f..ede04ea7c66ed87d511e8301b1853aa764b0fe25 100644 (file)
@@ -485,11 +485,14 @@ static int mod_bootstrap(module_inst_ctx_t const *mctx)
                        /*
                         *      Secret and auth_type handling.
                         */
-                       if (c->secret && !*c->secret) {
-                               cf_log_err(cs, "Secret cannot be an empty string");
-                               goto error;
+                       if (c->secret) {
+                               if (!*c->secret) {
+                                       cf_log_err(cs, "Secret cannot be an empty string");
+                                       goto error;
+                               }
+
+                               peer->secret_len = talloc_array_length(c->secret) - 1;
                        }
-                       peer->secret_len = strlen(c->secret);
 
                        switch (peer->auth_type) {
                        case BFD_AUTH_RESERVED: