Граф коммитов

51 Коммитов

Автор SHA1 Сообщение Дата
Jeremy Evans 2ecfb88ee5 Correctly remove temporary directory if path yielded is mutated
Another approach would be to freeze the string, but that could
cause backwards compatibility issues.

Fixes [Bug #16918]
2020-05-29 07:06:46 -07:00
Nobuyoshi Nakada 98f6c74b42
Isolate the PRNG for tmpdir/tempfile
To get rid of conflicts affected by `srand`.
2020-01-29 10:14:15 +09:00
Jeremy Evans c5c05460ac Warn on access/modify of $SAFE, and remove effects of modifying $SAFE
This removes the security features added by $SAFE = 1, and warns for access
or modification of $SAFE from Ruby-level, as well as warning when calling
all public C functions related to $SAFE.

This modifies some internal functions that took a safe level argument
to no longer take the argument.

rb_require_safe now warns, rb_require_string has been added as a
version that takes a VALUE and does not warn.

One public C function that still takes a safe level argument and that
this doesn't warn for is rb_eval_cmd.  We may want to consider
adding an alternative method that does not take a safe level argument,
and warn for rb_eval_cmd.
2019-11-18 01:00:25 +02:00
Jeremy Evans d08e1004e0 Fix keyword argument separation issues in lib
Mostly requires adding ** in either calls or method definitions.
2019-08-30 12:39:31 -07:00
Nobuyoshi Nakada 1c7e303b26
Constified unusable chars 2019-06-21 23:04:34 +09:00
nobu 1fae154c07 tmpdir.rb: permission of user given directory
* lib/tmpdir.rb (Dir.mktmpdir): check if the permission of the
  parent directory only when using the default temporary
  directory, and no check against user given directory.  the
  security is the user's responsibility in that case.
  [ruby-core:91216] [Bug #15555]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2019-01-23 06:06:47 +00:00
hsbt 10b96900b9 Ignore file separator from tmpfile/tmpdir name.
From: SHIBATA Hiroshi <hsbt@ruby-lang.org>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-28 10:03:03 +00:00
nobu 25d56ea7b7 tmpdir.rb: merged make_tmpname to create
* lib/tmpdir.rb (Dir::Tmpname#create): try conversion of prefix
  and suffix just once before loop.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-15 08:02:09 +00:00
hsbt 379c3b8b24 * lib/tmpdir.rb: Unify to coding-style for method definition.
[fix GH-1252]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:11:14 +00:00
akr 68ebbbfebe * lib/open-uri.rb: Remove indicator for "frozen_string_literal: true".
* lib/pp.rb: Ditto.

* lib/prettyprint.rb: Ditto.

* lib/resolv.rb: Ditto.

* lib/securerandom.rb: Ditto.

* lib/tmpdir.rb: Ditto.

* lib/unicode_normalize/tables.rb: Ditto.

* test/net/ftp/test_buffered_socket.rb: Ditto.

* test/net/ftp/test_mlsx_entry.rb: Ditto.

* test/open-uri/test_open-uri.rb: Ditto.

* test/open-uri/test_ssl.rb: Ditto.

* test/pathname/test_pathname.rb: Ditto.

* test/test_pp.rb: Ditto.

* test/test_prettyprint.rb: Ditto.

* tool/transcode-tblgen.rb: Ditto.

* ext/pathname/lib/pathname.rb: Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-10 11:48:14 +00:00
akr 83da44790b * lib/tmpdir.rb (Dir.tmpdir): return duplicated string to be
modify safely even when $SAFE > 0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-06 12:40:41 +00:00
akr 36ca18b847 Put an line before "frozen_string_literal: true" for emacs.
https://bugs.ruby-lang.org/issues/8976#note-49


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-05 22:22:56 +00:00
akr 805c20a8e5 * lib/pp.rb: Use frozen_string_literal: true.
* lib/prettyprint.rb: Ditto.

* lib/resolv.rb: Ditto.

* lib/tmpdir.rb: Ditto.

* test/test_pp.rb: Ditto.

* test/test_prettyprint.rb: Ditto.

* tool/transcode-tblgen.rb: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-05 13:27:48 +00:00
akr 8b5c7d939d * lib/tmpdir.rb (Dir.mktmpdir): Accept nil again, as Ruby 2.1.
[ruby-core:66943] [Bug #10616] Fixed by Alex Slynko.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-20 08:58:07 +00:00
nobu 2e2522ecdf tmpdir.rb: explicit conversion to string
* lib/tmpdir.rb (Dir::Tmpname#make_tmpname): convert prefix and
  suffix to strings explicitly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47681 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-22 04:44:19 +00:00
nobu a718be06fa tempfile.rb: fix r47655
* lib/tempfile.rb (Tempfile#initialize, Tempfile.create): get rid of
  shadowing local variables.

* lib/tmpdir.rb (Dir::Tmpname#make_tmpname): simlify argument
  splitting.

* test/test_tempfile.rb: need thread library for ConditionVariable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-21 01:40:21 +00:00
glass 09e91be9ab * lib/tempfile.rb: define parameters appropriately and some
refactoring.

* lib/tmpdir.rb:   ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-20 17:35:06 +00:00
hsbt 4b8f0e7637 * lib/shell/command-processor.rb: remove unused variable.
* lib/shell/system-command.rb: ditto.
* lib/tmpdir.rb: ditto.
* lib/uri/generic.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-26 17:44:07 +00:00
akr 07f2563745 * (lib/tmpdir.rb): Rescue LoadError on etc.so for miniruby.
Revert r45707, r45711, r45717.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-29 05:19:38 +00:00
akr 869c7ce0d1 * lib/tmpdir.rb: Don't need to rescue LoadError for etc.so.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-04-24 11:53:31 +00:00
ktsj edb98f8b91 fix typos. Patch by k_takata.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 03:10:21 +00:00
nobu 6f8bce9eff tmpdir.rb: not expand tilde
* lib/tmpdir.rb (Dir::Tmpname#create): deal with a prefix name which
  starts with tilde as a plain name, not expanding as home directory.
  [ruby-core:50793] [Bug #7547]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-12 12:40:51 +00:00
akr b681457f01 * lib/tmpdir.rb (Dir::tmpdir): test the current directory suitable for
temporary directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-12 11:19:42 +00:00
akr 48b5b163fc * lib/tmpdir.rb: update document for changing
FileUtils.remove_entry_secure to FileUtils.remove_entry.

* NEWS: add incompatiblity note for lib/tmpdir.rb.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-11 22:37:04 +00:00
nobu bcb9e567c4 * lib/tmpdir.rb (Dir.tmpdir): should not use world-writable but
non-sticky directory.
* lib/tmpdir.rb (Dir.mktmpdir): check the parent directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-11 22:19:06 +00:00
drbrain 7bbf2f3085 * lib: Convert tabs to spaces for ruby files per
http://redmine.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style
	  Patch by Steve Klabnik [Ruby 1.9 - Bug #4730]
	  Patch by Jason Dew [Ruby 1.9 - Feature #4718]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-18 21:19:18 +00:00
nobu 2c01a07bf4 * ext/etc/etc.c (etc_systmpdir): moved from ext/tmpdir.
* ext/etc/etc.c (etc_sysconfdir): added.

* lib/rubygems/config_file.rb, lib/tmpdir.rb: use etc.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 03:25:17 +00:00
akr 3b9c00306f * lib/tmpdir.rb: test RUBY_PLATFORM for loading tmpdir.so to avoid
LoadError.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06 05:14:10 +00:00
nobu 3694f1dda7 * ext/tmpdir: split from lib/tmpdir.rb.
* win32/win32.c (rb_w32_system_tmpdir): extracted from init_env.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 06:20:23 +00:00
nobu d9eae80011 * lib/tempfile.rb (Tempfile#initialize): merge mode option.
* lib/tmpdir.rb (Dir::Tmpname#create): splat options.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-11 10:17:36 +00:00
nobu 50ef1b0676 * lib/tmpdir.rb (Dir::Tmpname): for internal use.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-11 09:46:53 +00:00
nobu 032a314c50 * lib/tempfile.rb, lib/tmpdir.rb (Tmpname): extracted new module.
[ruby-dev:39197]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24795 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-08 13:38:01 +00:00
nobu be41711465 * lib/tmpdir.rb (Dir.mktmpdir): rolled back r24699. [ruby-dev:39193]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-29 03:16:56 +00:00
nobu 2235d504b7 * lib/tmpdir.rb (Dir.mktmpdir): removed thread race condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-28 18:27:30 +00:00
usa a610b0a959 * dir.c (dir_s_getwd): directory path's encoding should be filesystem's
one.

	* lib/tmpdir.rb: ditto (but not finished yet.)



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-10 09:15:55 +00:00
nobu e691ba3bac * lib/tmpdir.rb (Dir.tmpdir): not use USERPROFILE, and ignores
non-existent directory.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22782 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-05 07:56:19 +00:00
nobu a285f8565d * lib/tmpdir.rb (@@systmpdir): File.expand_path also joins paths.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-19 06:17:01 +00:00
usa cdc5ebd3f2 * lib/tmpdir.rb: setup buffer with nul characters instead of spaces.
fixed [ruby-dev:36493]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19513 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-24 05:39:39 +00:00
nobu 285fb00195 * lib/tmpdir.rb (@@systmpdir): prior LOCAL_APPDATA if possible, and
should be clean.  based on a patch from arton <artonx AT
  yahoo.co.jp> at [ruby-dev:35269]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-29 00:43:12 +00:00
akr 0945e23b07 doc. wording fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13762 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-10-24 06:03:48 +00:00
akr c4d6f4c01e * lib/tmpdir.rb (Dir.mktmpdir): make directory suffix specifiable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-21 12:15:34 +00:00
akr 6355e16257 fix Dir.mktmpdir doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13086 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-18 03:24:41 +00:00
akr 478e984e93 update Dir.mktmpdir document.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-16 04:30:18 +00:00
akr bba925eae6 * lib/tmpdir.rb (Dir.mktmpdir): new method. [ruby-dev:31416]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-15 15:38:18 +00:00
usa 406479b3b5 * lib/tmpdir.rb: use return value of getdir.call for length.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-28 11:54:37 +00:00
matz 2d6dad4f4f * lib/tmpdir.rb: merged RDoc patch from Eric Hodel <drbrain at
segment7.net>.  [ruby-core:06894]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-15 03:41:13 +00:00
eban 2dfe646bae * lib/tmpdir.rb: use GetWindowsDirectory, not GetSystemDirectory. [ruby-talk:77073]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-26 15:38:58 +00:00
eban 02f036ddbc * lib/tmpdir.rb (tmpdir): new method. remove TMPDIR.
use GetSystemWindowsDirectory(GetSystemDirectory), not GetTempPath.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-23 16:37:35 +00:00
matz 0d1df1cd7d * variable.c (rb_mod_const_missing): new method. [ruby-core:00441]
* variable.c (rb_const_get_at): allow "const_missing" hook.

* variable.c (rb_const_get_0): ditto.

* eval.c (method_missing): rename from rb_undefined to clarify.

* eval.c (ruby_finalize_0): update exit status if any of END proc
  raises SystemExit. [ruby-core:01256]

* eval.c (rb_exec_end_proc): reduce rb_protect().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-22 08:42:47 +00:00
usa 8f81d082af * lib/tmpdir.rb: remove charcters after "\000" and regularize path.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-07-22 01:53:58 +00:00