mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 13:49:23 -05:00
debug-link: Protect against dangling symlinks.
Fixes <https://issues.guix.gnu.org/60584>. Reported by Greg Hogan <code@greghogan.com> and Sébastien Rey-Coyrehourcq <sebastien.rey-coyrehourcq@univ-rouen.fr>. * guix/build/debug-link.scm (find-elf-files): Wrap 'elf-file?' call in 'catch'.
This commit is contained in:
parent
79b11cafcf
commit
c4a8762e52
1 changed files with 10 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018, 2023 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -175,7 +175,15 @@ (define directories
|
|||
outputs))
|
||||
|
||||
(append-map (lambda (directory)
|
||||
(filter elf-file?
|
||||
(filter (lambda (file)
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(elf-file? file))
|
||||
(lambda args
|
||||
;; FILE might be a dangling symlink.
|
||||
(if (= ENOENT (system-error-errno args))
|
||||
#f
|
||||
(apply throw args)))))
|
||||
(with-error-to-port (%make-void-port "w")
|
||||
(lambda ()
|
||||
(find-files directory)))))
|
||||
|
|
Loading…
Reference in a new issue