diff -r 77241b3ba544 -r 97039494764b src/server/safs/common.c --- a/src/server/safs/common.c Thu Aug 15 22:42:35 2024 +0200 +++ b/src/server/safs/common.c Fri Aug 16 16:59:05 2024 +0200 @@ -165,19 +165,9 @@ case COMMONSAF_ABORT: return COMMONSAF_REQ_ABORTED; case COMMONSAF_NOACTION: return COMMONSAF_RET_NOACTION; case COMMONSAF_ERROR: { - int len = strlen(value); - WSBool isnum = TRUE; - int i; - for(i=0;i 999 || !ret) { + char *end; + long status = strtol(value, &end, 10); + if(status < 100 || status > 999) { log_ereport( LOG_MISCONFIG, "set-variable: error value must contain a 3-digit http status code"); @@ -185,7 +175,14 @@ return COMMONSAF_RET_ERROR; } - const char *msg = isnum ? NULL : cx_strtrim(cx_str(value + i)).ptr; + const char *msg = NULL; + while(isspace(*end)) { + end++; + } + if(*end != '\0') { + msg = end; + } + protocol_status(sn, rq, (int)status, msg); return COMMONSAF_REQ_ABORTED;