bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#57567: ‘primitive-load’ should open files with O_CLOEXEC


From: Ludovic Courtès
Subject: bug#57567: ‘primitive-load’ should open files with O_CLOEXEC
Date: Sat, 03 Sep 2022 21:24:12 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux)

Hi,

Currently ‘primitive-load’ opens files without O_CLOEXEC:

    port = scm_open_file_with_encoding (filename,
                                        scm_from_latin1_string ("r"),
                                        SCM_BOOL_T, /* guess_encoding */
                                        scm_from_latin1_string ("UTF-8"));

We should fix that; here’s an example where it shows:

--8<---------------cut here---------------start------------->8---
$ guix shell bash -- sh -c 'ls -l /proc/$$/fd'
total 0
lrwx------ 1 ludo users 64 Sep  3 21:20 0 -> /dev/pts/0
lrwx------ 1 ludo users 64 Sep  3 21:20 1 -> /dev/pts/0
lrwx------ 1 ludo users 64 Sep  3 21:20 2 -> /dev/pts/0
lr-x------ 1 ludo users 64 Sep  3 21:20 3 -> /proc/9563/fd
lr-x------ 1 ludo users 64 Sep  3 21:20 5 -> 
/gnu/store/4qbqaa4dgr2fwjjs9i2naqrd0djrcnw3-guix-command
$ head -1 $(type -P guix)
#!/gnu/store/9z95jms1r801z1kxpiq5xw594cxaw5jx-guile-wrapper/bin/guile 
--no-auto-compile
--8<---------------cut here---------------end--------------->8---

For a proper fix, one possibility would be to first augment
‘scm_i_mode_to_open_flags’ to recognize some letter for O_CLOEXEC.  In
glibc, fopen(3) uses “e” for that.

Thoughts?

Ludo’.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]