Fri, 30 May 2025 11:20:12 +0200
fix wrong status code when an ACL check fails in vfs_open
| src/server/daemon/vfs.c | file | annotate | diff | comparison | revisions |
--- 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; }