GNU bug report logs - #68968
system reconfigure ignores incorrect --on-error flag value

Previous Next

Package: guix;

Reported by: Michal Atlas <michal_atlas+gnu <at> posteo.net>

Date: Wed, 7 Feb 2024 11:59:01 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Michal Atlas <michal_atlas+gnu <at> posteo.net>
To: 68968 <at> debbugs.gnu.org
Subject: bug#68968: system reconfigure ignores incorrect --on-error flag value
Date: Wed,  7 Feb 2024 11:48:25 +0000
In the guix/scripts/system.scm file we do not check the value while parsing the flag:

--8<---------------cut here---------------start------------->8---
(option '("on-error") #t #f
        (lambda (opt name arg result)
          (alist-cons 'on-error (string->symbol arg)
                      result)))
--8<---------------cut here---------------end--------------->8---

and then blindly pass it to load*:

--8<---------------cut here---------------start------------->8---
(load* file %user-module
       #:on-error (assoc-ref opts 'on-error))
--8<---------------cut here---------------end--------------->8---

and load* uses it in a case that only gets called when an actual error occurs and treats the correct symbols but has a default clause that silently ignores values other than debug and backtrace:

--8<---------------cut here---------------start------------->8---
(case on-error
  ((debug)
   ...)
  ((backtrace)
   ...)
  (else
   #t))
--8<---------------cut here---------------end--------------->8---

meaning that for example a typo such as `--on-error=stacktrace`, gets treated as if the flag was not passed at all.

Minimum replication:
--8<---------------cut here---------------start------------->8---
guix system build <(echo x) --on-error=stacktrace
guix system build <(echo x) --on-error=backtrace
--8<---------------cut here---------------end--------------->8---

I'm not sure where the check should be done, nor what would be an acceptable way to not duplicate the list of valid values between guix/ui.scm and guix/scripts/system.scm





This bug report was last modified 1 year and 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.