# HG changeset patch # User Olaf Wintermann # Date 1748596812 -7200 # Node ID d83dced6dd80c0fce868ca083a2f61e6eb000d2e # Parent 2839d5e28c75d030abecc2ba26ba75c5e3c5dd9e fix wrong status code when an ACL check fails in vfs_open diff -r 2839d5e28c75 -r d83dced6dd80 src/server/daemon/vfs.c --- a/src/server/daemon/vfs.c Fri May 30 09:51:23 2025 +0200 +++ b/src/server/daemon/vfs.c Fri May 30 11:20:12 2025 +0200 @@ -377,6 +377,7 @@ if(sysacl.acl) { if(!fs_acl_check(&sysacl, ctx->user, path, access_mask)) { acl_set_error_status(ctx->sn, ctx->rq, sysacl.acl, ctx->user); + ctx->error_response_set = TRUE; return NULL; } } @@ -625,6 +626,7 @@ if(acl) { acl_set_error_status(ctx->sn, ctx->rq, acl, ctx->user); + ctx->error_response_set = TRUE; return 1; } } @@ -634,7 +636,7 @@ void sys_set_error_status(VFSContext *ctx) { if(ctx->sn && ctx->rq && !ctx->error_response_set) { - int status = util_errno2status(ctx->vfs_errno); + int status = ctx->vfs_errno != 0 ? util_errno2status(ctx->vfs_errno) : 500; protocol_status(ctx->sn, ctx->rq, status, NULL); ctx->error_response_set = TRUE; }