From 192ef6a827fb1f5385c82d8ada4cee602ae848dc Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Thu, 10 Jun 2010 00:18:50 +0200 Subject: [PATCH] use getpwuid() to resolve ~ in socket paths instead of glob() This fixes a warning about using a tainted variable (broke the tests with newer perl versions). --- lib/AnyEvent/I3.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/AnyEvent/I3.pm b/lib/AnyEvent/I3.pm index d9a55b2b..944d5f02 100644 --- a/lib/AnyEvent/I3.pm +++ b/lib/AnyEvent/I3.pm @@ -96,7 +96,16 @@ sub new { $path ||= '~/.i3/ipc.sock'; - bless { path => glob($path) } => $class; + # Check if we need to resolve ~ + if ($path =~ /~/) { + # We use getpwuid() instead of $ENV{HOME} because the latter is tainted + # and thus produces warnings when running tests with perl -T + my $home = (getpwuid($<))[7]; + die "Could not get home directory" unless $home and -d $home; + $path =~ s/~/$home/g; + } + + bless { path => $path } => $class; } =head2 $i3->connect -- 2.39.5