From: dana koch Date: Sat, 15 Feb 2014 10:48:58 +0000 (+1100) Subject: Restitute a successful stat call to this test case. X-Git-Tag: tor-0.2.5.3-alpha~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f49805b6816c5968f5c325022c96f9672da90ed4;p=thirdparty%2Ftor.git Restitute a successful stat call to this test case. Since the first stat call is made for it to deliberately fail, and we reference st.st_mode without st having valid data, st.st_mode can contain garbage and cause chmod to fail with EINVAL. We rerun stat and ensure it succeeded. Also make use of tt_abort_perror, to properly convey failure reasons to the user. --- diff --git a/src/test/test_config.c b/src/test/test_config.c index 678357d8eb..3a1e6cb78a 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -221,12 +221,17 @@ test_config_check_or_create_data_subdir(void *arg) // and is private to the user. test_assert(!check_or_create_data_subdir(subdir)); + r = stat(subpath, &st); + if (r) { + tt_abort_perror("stat"); + } + #if !defined (_WIN32) || defined (WINCE) group_permission = st.st_mode | 0070; r = chmod(subpath, group_permission); if (r) { - test_fail_msg("Changing permissions for the subdirectory failed."); + tt_abort_perror("chmod"); } // If the directory exists, but its mode is too permissive