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

188 Коммитов

Автор SHA1 Сообщение Дата
rhe 0b845a8458 string.c: fix memory leak in String#crypt
Use ALLOCV to allocate struct crypt_data for slightly cleaner and less
error-prone code. It is currently possible it leaks when an invalid
argument is passed to String#crypt or rb_str_new_cstr() fails to
allocate memory.

SIZEOF_CRYPT_DATA macro in missing/crypt.h is removed since it is not
used any longer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-11-12 15:55:04 +00:00
hsbt 0e2d2e6a79 Drop to support NaCl platform.
Because NaCl and PNaCl are already sunset status.
  see https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160

  configure.ac: Patch for this file was provided by @nobu.

  [Feature #14041][ruby-core:83497][fix GH-1726]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-23 05:56:25 +00:00
nobu 92261511b6 string.c: for small crypt_data
* string.c (rb_str_crypt): struct crypt_data defined in
  missing/crypt.h is small enough.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-24 06:55:09 +00:00
nobu 126aba8587 fix tgamma for inifity
* configure.in: do not use buggy tgamma() of mingw.

* missing/tgamma.c (tgamma): merge fix for inifity from
  ruby_tgamma.  since msvcr120.dll and later have tgamma, this
  implementation will not be used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-12 16:12:46 +00:00
nobu 05ea264611 tgamma.c: unify versions with/without lgamma_r
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-05-12 16:01:17 +00:00
rhe 70c9bb4b81 Remove missing/strtol.c
It is never used. We don't need it anyway as it's part of C89 which is
our current minimum requirement.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-04-21 06:03:12 +00:00
nobu 08cf4cecd5 get rid of sprintf
* missing/strerror.c (strerror): use snprintf instead of sprintf.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-26 09:28:48 +00:00
nobu 9b454bfaf3 rubystub
* rubystub.c: generalize win32/stub.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-08-20 02:20:34 +00:00
hsbt 0b8590724d * missing/strl{cat,cpy}.c: Update latest upstream files.
[Misc #12205][ruby-core:74487]
* LEGAL: Update license for missing/strl{cat,cpy}.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-07-21 13:27:02 +00:00
nobu df8c48a3f9 Use LONG_LONG
* missing/crypt.h (B64): use LONG_LONG instead of long long
  directly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-29 04:37:12 +00:00
nobu b1b1f3ded2 des_tables.c: generation rule
* defs/gmake.mk (missing/des_tables.c): move the recipe from
  common.mk.  this is less common.

* missing/crypt.c (init_des): if des_tables.c is empty, initialize
  DES tables at runtime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-04 02:40:04 +00:00
nobu 40c3c3ec6c crypt.h: remove initialized
* missing/crypt.h (struct crypt_data): remove unnecessary member
  "initialized".
* missing/crypt.c (des_setkey_r): nothing to be initialized in
  crypt_data.
* configure.in (struct crypt_data): check for "initialized" in
  struct crypt_data, which may be only in glibc, and isn't on AIX
  at least.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-04 01:54:54 +00:00
nobu 80cd6b8757 crypt.c: suppress warnings
* missing/crypt.c (SPE): make unsigned so that literal integers do
  not exceed 32bit signed integer limit.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-02 03:05:40 +00:00
nobu 9334bb3075 crypt.c: fix syntax error on mswin
* missing/crypt.c (constdatablock): fix error on mswin. Visual C
  does not accept an empty initializer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-02 02:30:43 +00:00
nobu 5f225f3114 crypt.c: unused functions
* missing/crypt.c: suppress unused non-reentrant functions, by
  macro USE_NONREENTRANT_CRYPT.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 13:38:59 +00:00
nobu 691556d778 crypt.h: get rid of conflict
* missing/crypt.h: move crypt.h to get rid of conflict with the
  system header.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 10:24:10 +00:00
nobu a8bfa9bdf1 use system crypt
* configure.in: revert r55237.  replace crypt, not crypt_r, and
  check if crypt is broken more.
* missing/crypt.c: move crypt_r.c
* string.c (rb_str_crypt): use crypt_r if provided by the system.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 06:58:21 +00:00
nobu 1258bc559b des_tables.c
* missing/crypt_r.c: initialize DES tables statically.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 06:05:21 +00:00
nobu 9cfc17a210 crypt_r.c: fix out of bounds access
* missing/crypt_r.c (a64toi): initialize statically and fix out of
  bounds access when salt is not 7bit clean.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 05:07:55 +00:00
nobu 2a27b6c851 crypt_r.c: DES tables
* missing/crypt_r.c (des_tables): move sharable DES constant
  tables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 05:00:55 +00:00
nobu bc6db9a585 crypt_r.c: remove casts
* missing/crypt_r.c: consitify and remove unnecessary pointer
  casts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 04:20:40 +00:00
nobu 6593e0fe54 crypt_r.c: adjust style
* missing/crypt_r.c: adjust style to BSD as the original.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 00:52:59 +00:00
nobu 3c31685e11 use crypt_r
* string.c (rb_str_crypt): use reentrant crypt_r.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 00:48:08 +00:00
usa 6cc652a23d * missing/crypt.c (des_setkey): void function never returns any value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 00:37:54 +00:00
nobu e1d49beb5d separate crypt.h
* crypt.h: separate header file from missing/crypt.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 00:16:24 +00:00
nobu 49895f21a6 add crypt_r
* missing/crypt.c (crypt_r, setkey_r, encrypt_r): add reentrant
  versions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-06-01 00:14:32 +00:00
nobu 7e053ffeb6 crypt.c: fix size macros
* missing/crypt.c: fix size macros to use configured values
  for platforms long is larger than 32bit.
  [ruby-core:75792] [Bug #12446]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-31 17:25:40 +00:00
nobu 4cec7e8e35 crypt.c: protoize
* missing/crypt.c: protoize function definitions and make
  always-zero functions void.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-31 16:49:32 +00:00
nobu ccea383a58 crypt.c: constify
* missing/crypt.c: constify Standard DES Tables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-31 16:49:30 +00:00
nobu 39330d6b79 lgamma_r.c: fix at -0.0
* math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows,
  since msvcrt does not provide it.
* missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0).
  [ruby-core:74823] [Bug #12249]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-04-06 01:17:55 +00:00
nobu 09bdb7913c missing.h: remove explicit_bzero_by_memset_s
* include/ruby/missing.h (explicit_bzero_by_memset_s): remove
  inline implementation by memset_s, which needs a macro before
  including headers and can cause problems in extension libraries
  by the order of the macro and headers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-01-10 06:45:36 +00:00
nobu 97fe401413 explicit_bzero.c: fix typos
* missing/explicit_bzero.c (explicit_bzero): fix typos, probably.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 02:36:58 +00:00
nobu 9849555a3e explicit_bzero.c: fix comments
* missing/explicit_bzero.c: fix comments.  Microsoft Visual Studio
  does not provide memset_s() in 12.0 at least.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 00:55:50 +00:00
naruse bb5bd52a59 undef for tha case missing.h defines it as macro
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-02 00:03:51 +00:00
normal fd8f7848b4 missing/explicit_bzero.c (explicit_bzero): fixup r52839
...for compilers with "weak" attribute.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52841 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 22:42:00 +00:00
kosaki 48de9684b9 * missing/explicit_bzero.c: add ruby_explicit_bzero_hook_unused
for preventing optimization. Inspired from OpenBSD.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52839 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 21:52:02 +00:00
nobu 24dcb1285d explicit_bzero.c: needs windows.h
* missing/explicit_bzero.c, random.c (explicit_bzero):
  SecureZeroMemory() needs windows.h.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 03:52:20 +00:00
nobu 10bb9e6fab missing.h: explicit_bzero by memset_s
* include/ruby/missing.h (explicit_bzero_by_memset_s): call
  memset_s directly if available.

* missing/explicit_bzero.c: optimization is not a matter if
  memset_s is available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 01:24:23 +00:00
nobu ff113d52f7 configure.in: FUNC_UNOPTIMIZED
* configure.in: check if optimize pragma is supported.

* include/ruby/defines.h (FUNC_UNOPTIMIZED): fallback definition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52823 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 01:05:48 +00:00
kosaki 586c174922 * missing/explicit_bzero.c: add a few comment.
* missing/explicit_bzero.c: add disabling optimization on gcc.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 00:35:59 +00:00
kosaki ed0858a8c5 fix r52806
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52821 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-01 00:07:21 +00:00
normal cae8e96bf5 missing/explicit_bzero.c: Fixup r52806
Maybe kosaki had a better version, but CI failure emails are
annoying.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52819 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-30 22:53:21 +00:00
kosaki 4ad2057f27 * ChangeLog: Good-bye OS/2.
* common.mk: ditto.
* configure.in: ditto.
* dln_find.c: ditto.
* ext/Setup.emx: ditto.
* ext/extmk.rb: ditto.
* ext/socket/extconf.rb: ditto.
* ext/zlib/extconf.rb: ditto.
* file.c: ditto.
* include/ruby/defines.h: ditto.
* io.c: ditto.
* lib/mkmf.rb: ditto.
* missing/os2.c: ditto.
* process.c: ditto.
* ruby.c: ditto.
* NEWS: announce OS/2 is no longer supported.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-10-18 01:18:34 +00:00
odaira f3754f57cb missing/setproctitle.c: Avoid invalidating argv[1], argv[2], etc. until the first call to Process.setproctitle, because the ps command of AIX refers to the argv array. [Bug #10090]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-08 22:31:53 +00:00
akr 8f2631e0cd * missing/nextafter.c: Include ruby/missing.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18 03:03:26 +00:00
akr 63fee73500 * configure.in: Check nextafter() availability.
* include/ruby/missing.h (nextafter): New optional declaration.

* missing/nextafter.c: New file.

* numeric.c: Float#next_float and Float#prev_float implemented.

   [ruby-core:62562] [Feature #9834]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-18 00:37:10 +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
akr bac8fa5f9d * missing/isnan.c (isnan): Don't define if isnan() macro is defined.
This fixes a compilation failure on uClibc based Gentoo system.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-23 11:27:07 +00:00
charliesome af35f2a61d * configure.in: check for the whether crt_externs.h is present when compiling
for darwin (this header is missing in the iOS SDK)
* eval_intern.h: check HAVE_CRT_EXTERNS_H before including crt_externs.h, if
  not defined, include missing/crt_externs.h instead
* hash.c: ditto
* missing/setproctitle.c: ditto
* missing/crt_externs.h: declare _NSGetEnviron() function and define environ
  for iOS

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38644 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-28 14:23:25 +00:00
nobu 2741a598ff setproctitle.c: _NSGetEnviron
* missing/setproctitle.c (environ): use (*_NSGetEnviron()) instead of
  environ on Darwin for namespace cleanness, same as [ruby-core:00537].
  [ruby-core:45615] [Bug #6576]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-06-20 07:36:23 +00:00