--- a/src/server/util/util.c Tue Nov 11 11:03:50 2025 +0100 +++ b/src/server/util/util.c Tue Nov 11 16:53:23 2025 +0100 @@ -353,12 +353,14 @@ for(t = s, u = s; *t; ++t, ++u) { if (*t == '%') { t1 = t[1] & 0xdf; /* [a-f] -> [A-F] */ - if ((t1 < 'A' || t1 > 'F') && (t[1] < '0' || t[1] > '9')) - rv = 0; + if ((t1 < 'A' || t1 > 'F') && (t[1] < '0' || t[1] > '9')) { + return 0; + } t2 = t[2] & 0xdf; /* [a-f] -> [A-F] */ - if ((t2 < 'A' || t2 > 'F') && (t[2] < '0' || t[2] > '9')) - rv = 0; + if ((t2 < 'A' || t2 > 'F') && (t[2] < '0' || t[2] > '9')) { + return 0; + } *u = ((t[1] >= 'A' ? ((t[1] & 0xdf) - 'A')+10 : (t[1] - '0'))*16) + (t[2] >= 'A' ? ((t[2] & 0xdf) - 'A')+10 : (t[2] - '0')); @@ -369,7 +371,7 @@ } *u = *t; - return rv; + return 1; }