From 038985206c5a027b2f9dc15f4cec5e78eafcc899 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Mon, 26 Mar 2007 22:10:53 +0000 Subject: [PATCH] Don't read ./.valgrindrc if CWD==HOME. Merged from trunk (r6660). Also required r6380. git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH@6666 --- coregrind/m_commandline.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/coregrind/m_commandline.c b/coregrind/m_commandline.c index dd809a83df..6a8c101eb6 100644 --- a/coregrind/m_commandline.c +++ b/coregrind/m_commandline.c @@ -207,9 +207,19 @@ void VG_(split_up_argv)( Int argc, HChar** argv ) // read_dot_valgrindrc() allocates the return value with // VG_(malloc)(). We do not free f1_clo and f2_clo as they get // put into VG_(args_for_valgrind) and so must persist. - HChar* f1_clo = read_dot_valgrindrc( VG_(getenv)("HOME") ); + HChar* home = VG_(getenv)("HOME"); + HChar* f1_clo = home ? read_dot_valgrindrc( home ) : NULL; HChar* env_clo = VG_(strdup)( VG_(getenv)(VALGRIND_OPTS) ); - HChar* f2_clo = read_dot_valgrindrc("."); + HChar* f2_clo = NULL; + + // Don't read ./.valgrindrc if "." is the same as "$HOME", else its + // contents will be applied twice. (bug #142488) + if (home) { + HChar cwd[VKI_PATH_MAX+1]; + Bool cwd_ok = VG_(getcwd)(cwd, VKI_PATH_MAX); + f2_clo = ( (cwd_ok && VG_STREQ(home, cwd)) + ? NULL : read_dot_valgrindrc(".") ); + } if (f1_clo) add_args_from_string( f1_clo ); if (env_clo) add_args_from_string( env_clo ); -- 2.47.2