]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
just use sprintf to match the rest of the code
authorAlan T. DeKok <aland@freeradius.org>
Wed, 4 Mar 2026 22:05:46 +0000 (17:05 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 4 Mar 2026 22:05:46 +0000 (17:05 -0500)
and other minor tweaks

src/lib/server/util.c

index 3512b1d4fbac4517fd221159e4eb2a7a290a05b3..359d4e3f18795b484c79c1389deaae690fbbf0c0 100644 (file)
@@ -178,15 +178,15 @@ ssize_t rad_filename_escape(UNUSED request_t *request, char *out, size_t outlen,
 
                        switch (utf8_len) {
                        case 2:
-                               snprintf(out, freespace, "-%x-%x", (uint8_t)in[0], (uint8_t)in[1]);
+                               snprintf(out, freespace, "-%02x-%02x", (uint8_t)in[0], (uint8_t)in[1]);
                                break;
 
                        case 3:
-                               snprintf(out, freespace, "-%x-%x-%x", (uint8_t)in[0], (uint8_t)in[1], (uint8_t)in[2]);
+                               snprintf(out, freespace, "-%02x-%02x-%02x", (uint8_t)in[0], (uint8_t)in[1], (uint8_t)in[2]);
                                break;
 
                        case 4:
-                               snprintf(out, freespace, "-%x-%x-%x-%x", (uint8_t)in[0], (uint8_t)in[1], (uint8_t)in[2], (uint8_t)in[3]);
+                               snprintf(out, freespace, "-%02x-%02x-%02x-%02x", (uint8_t)in[0], (uint8_t)in[1], (uint8_t)in[2], (uint8_t)in[3]);
                                break;
                        }
 
@@ -225,12 +225,11 @@ ssize_t rad_filename_escape(UNUSED request_t *request, char *out, size_t outlen,
                }
 
                /*
-                *      Unsafe chars
+                *      Unsafe chars get escaped as -XX.
                 */
-               *out++ = '-';
-               fr_base16_encode(&FR_SBUFF_OUT(out, freespace), &FR_DBUFF_TMP((uint8_t const *)in, 1));
+               snprintf(out, freespace, "-%02x", (uint8_t) in[0]);
                in++;
-               out += 2;
+               out += 3;
                freespace -= 3;
        }
        *out = '\0';