GNU bug report logs -
#39211
[PATCH 1/1] 00-repl-server.test: don't use fixed path for socket
Previous Next
Reported by: Rob Browning <rlb <at> defaultvalue.org>
Date: Tue, 21 Jan 2020 03:22:01 UTC
Severity: normal
Tags: patch
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#39211: [PATCH 1/1] 00-repl-server.test: don't use fixed path for socket
which was filed against the guile package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 39211 <at> debbugs.gnu.org.
--
39211: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=39211
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Rob Browning <rlb <at> defaultvalue.org> skribis:
> Even setting aside any security concerns, this caused tests to fail if
> you ran them as a given user and then ran them again as another user.
>
> ---
>
> It didn't look like we have anything like mkdtemp or I'd have used it
> instead. And it looks like this might apply to, and it would be nice
> to have something like it on stable-2.2 as well.
>
> test-suite/tests/00-repl-server.test | 20 ++++++++++++++++----
> 1 file changed, 16 insertions(+), 4 deletions(-)
I believe what you pushed as ddcab06f20525d975503d8d9611e02021fb0dff1
fixes this issue, so I’m closing it now.
Thanks,
Ludo’.
[Message part 3 (message/rfc822, inline)]
Even setting aside any security concerns, this caused tests to fail if
you ran them as a given user and then ran them again as another user.
---
It didn't look like we have anything like mkdtemp or I'd have used it
instead. And it looks like this might apply to, and it would be nice
to have something like it on stable-2.2 as well.
test-suite/tests/00-repl-server.test | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/test-suite/tests/00-repl-server.test b/test-suite/tests/00-repl-server.test
index 54f518a66..4324f7371 100644
--- a/test-suite/tests/00-repl-server.test
+++ b/test-suite/tests/00-repl-server.test
@@ -24,13 +24,25 @@
#:use-module (web request)
#:use-module (test-suite lib))
+(define (make-tempdir)
+ (let loop ((try 0)
+ (n (random:uniform)))
+ (let* ((path (string-append "/tmp/repl-server-test-" (number->string n)))
+ (dir (false-if-exception (mkdir path #o700))))
+ (cond
+ (dir path)
+ ((> try 10)
+ (error "Unable to create directory in /tmp for 00-repl-server.test"))
+ (else (loop (1+ try) (random:uniform)))))))
+
(define (call-with-repl-server proc)
"Set up a REPL server in a separate process and call PROC with a
socket connected to that server."
- (let ((sockaddr (make-socket-address AF_UNIX "/tmp/repl-server"))
- (client-socket (socket AF_UNIX SOCK_STREAM 0)))
- (false-if-exception
- (delete-file (sockaddr:path sockaddr)))
+ (let* ((tmpdir (make-tempdir))
+ (sockaddr (make-socket-address AF_UNIX (string-append tmpdir "/repl-server")))
+ (client-socket (socket AF_UNIX SOCK_STREAM 0)))
+ (false-if-exception (delete-file (sockaddr:path sockaddr)))
+ (false-if-exception (rmdir tmpdir))
;; The REPL server requires thread. The test requires fork.
(unless (and (provided? 'threads) (provided? 'fork))
--
2.24.0
This bug report was last modified 5 years and 80 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.