Commit d9cd8a1a authored by Mislav Marohnić's avatar Mislav Marohnić
Browse files

Abort early if TMPDIR is non-writable or non-executable

Fixes #148
parent 1173e8c0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -841,6 +841,11 @@ else
  TMP="${TMPDIR%/}"
fi

if [ ! -w "$TMP" ] || [ ! -x "$TMP" ]; then
  echo "ruby-build: TMPDIR=$TMP is set to a non-accessible location" >&2
  exit 1
fi

# Work around warnings building Ruby 2.0 on Clang 2.x:
# pass -Wno-error=shorten-64-to-32 if the compiler accepts it.
#
+18 −0
Original line number Diff line number Diff line
@@ -234,3 +234,21 @@ rubinius-2.0.0: --prefix=$INSTALL_ROOT
bundle exec rake install
OUT
}

@test "non-writable TMPDIR aborts build" {
  export TMPDIR="${TMP}/build"
  mkdir -p "$TMPDIR"
  chmod -w "$TMPDIR"

  run_inline_definition <<<""
  assert_failure "ruby-build: TMPDIR=$TMPDIR is set to a non-accessible location"
}

@test "non-executable TMPDIR aborts build" {
  export TMPDIR="${TMP}/build"
  mkdir -p "$TMPDIR"
  chmod -x "$TMPDIR"

  run_inline_definition <<<""
  assert_failure "ruby-build: TMPDIR=$TMPDIR is set to a non-accessible location"
}