1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

database: Validate #:nar-size and #:time when registering store items.

* guix/store/database.scm (assert-integer): New procedure.
(update-or-insert): Use it to validate NAR-SIZE and TIME.
* tests/store-database.scm ("sqlite-register with incorrect size"): New
test.
This commit is contained in:
Ludovic Courtès
2021-01-31 16:14:59 +01:00
parent 9c4869fe9c
commit 13a7d2a538
2 changed files with 33 additions and 2 deletions

View File

@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -123,4 +123,21 @@
(pk 'welcome-exception! args)
#t)))))
(test-equal "sqlite-register with incorrect size"
'out-of-range
(call-with-temporary-output-file
(lambda (db-file port)
(delete-file db-file)
(catch #t
(lambda ()
(with-database db-file db
(sqlite-register db #:path "/gnu/foo"
#:references '("/gnu/bar")
#:deriver "/gnu/foo.drv"
#:hash (string-append "sha256:" (make-string 64 #\e))
#:nar-size -1234))
#f)
(lambda (key . _)
key)))))
(test-end "store-database")