From: Alan T. DeKok Date: Thu, 11 Jun 2026 11:46:20 +0000 (+0300) Subject: make rad_filename_box_make_safe() idempotent X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=24cf1ea278ff52ecd3b9906d879c347cf7836070;p=thirdparty%2Ffreeradius-server.git make rad_filename_box_make_safe() idempotent --- diff --git a/src/lib/server/util.c b/src/lib/server/util.c index cbf993c0768..32c720404e7 100644 --- a/src/lib/server/util.c +++ b/src/lib/server/util.c @@ -135,7 +135,7 @@ int rad_filename_box_make_safe(fr_value_box_t *vb, UNUSED void *uxtc) if (vb->vb_length == 0) return 0; - fr_assert(!fr_value_box_is_safe_for(vb, rad_filename_box_make_safe)); + if (fr_value_box_is_safe_for(vb, rad_filename_box_make_safe)) return 1; /* * Allocate an output buffer, only ever the same or shorter than the input diff --git a/src/modules/rlm_smtp/rlm_smtp.c b/src/modules/rlm_smtp/rlm_smtp.c index 88cfb805df2..aa285b25f4d 100644 --- a/src/modules/rlm_smtp/rlm_smtp.c +++ b/src/modules/rlm_smtp/rlm_smtp.c @@ -295,11 +295,9 @@ static int str_to_attachments(fr_mail_ctx_t *uctx, curl_mime *mime, fr_value_box return -1; } - if (!fr_value_box_is_safe_for(vb, (fr_value_box_safe_for_t) rad_filename_box_make_safe)) { - if (rad_filename_box_make_safe(vb, NULL) < 0) { - RPEDEBUG2("Failed escaping path"); - return -1; - } + if (rad_filename_box_make_safe(vb, NULL) < 0) { + RPEDEBUG2("Failed escaping path"); + return -1; } if (fr_sbuff_in_bstrncpy(path_buffer, vb->vb_strvalue, vb->vb_length) < 0) {