From: John Darrington Date: Sun, 2 Jun 2024 09:43:27 +0000 (+0200) Subject: Fix an assertion failure when running PERMISSIONS with the --safer option X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e6e57fab4c72ec17c65c8f847780670cc4769109;p=pspp Fix an assertion failure when running PERMISSIONS with the --safer option Partial fix for bug #65545 --- diff --git a/src/language/commands/permissions.c b/src/language/commands/permissions.c index 77b55a13e5..b529321988 100644 --- a/src/language/commands/permissions.c +++ b/src/language/commands/permissions.c @@ -48,7 +48,7 @@ cmd_permissions (struct lexer *lexer, struct dataset *ds UNUSED) lex_next_error (lexer, -1, -1, _("This command not allowed when the %s option is set."), "SAFER"); - return 0; + return CMD_FAILURE; } char *fn = NULL; diff --git a/tests/language/commands/permissions.at b/tests/language/commands/permissions.at index 23a1f1298e..2e339eb0ab 100644 --- a/tests/language/commands/permissions.at +++ b/tests/language/commands/permissions.at @@ -41,6 +41,27 @@ AT_CHECK([sed 's/^\(..........\).*/\1/' stdout], [0], [-rw-r--r-- AT_CLEANUP +dnl The PERMISSIONS command should be unavailable when --safer is given +AT_SETUP([PERMISSIONS - safer mode]) +AT_DATA([a-file], [Hello +]) + +chmod 444 a-file +AT_CHECK([ls -l a-file], [0], [stdout]) +AT_CHECK([sed 's/^\(..........\).*/\1/' stdout], [0], [-r--r--r-- +]) + +AT_DATA([permissions.sps], [PERMISSIONS /FILE='a-file' PERMISSIONS=WRITEABLE. +]) +AT_CHECK([pspp -O format=csv permissions.sps --safer], [1], [dnl +"permissions.sps:1.1-1.11: error: PERMISSIONS: This command not allowed when the SAFER option is set. + 1 | PERMISSIONS /FILE='a-file' PERMISSIONS=WRITEABLE. + | ^~~~~~~~~~~" +]) +AT_CHECK([ls -l a-file], [0], [stdout]) +AT_CHECK([sed 's/^\(..........\).*/\1/' stdout], [0], [-r--r--r-- +]) +AT_CLEANUP AT_SETUP([PERMISSIONS - bad syntax]) AT_DATA([pe.sps], [[PERMI|SIONS /FILE='foobar' PERMISSIONS=WRITEABLE.