8736 Commits

Author SHA1 Message Date
Hiroshi SHIBATA
7cdea3bd49 Merge zlib-3.0.1 2026-03-10 15:58:49 +09:00
Kazuki Yamaguchi
c38243e2c4 [ruby/openssl] ssl: remove OpenSSL::X509::V_FLAG_CRL_CHECK_ALL from the default store
With OpenSSL 3.6.0, it causes nearly every certificate verification to
fail with the message "certificate verify failed (unable to get
certificate CRL)" because the CRLs are typically unavailable in the
default store used by OpenSSL::SSL::SSLContext#set_params.

OpenSSL::X509::V_FLAG_CRL_CHECK_ALL is a flag that extends the CRL
checking to all certificates in the chain. In OpenSSL < 3.6.0, the flag
alone has no effect, and OpenSSL::X509::V_FLAG_CRL_CHECK must also be
set to enable CRL checking.

In OpenSSL 3.6.0, OpenSSL::X509::V_FLAG_CRL_CHECK_ALL now implies
OpenSSL::X509::V_FLAG_CRL_CHECK. This is inconsistent with the man page
and may be fixed in a future OpenSSL 3.6.x release, but this flag is not
needed and should not be set by default.

Fixes https://github.com/ruby/openssl/issues/949

https://github.com/ruby/openssl/commit/e8481cd687
2025-10-09 14:00:36 +09:00
Nobuyoshi Nakada
7e6bbc40c8 [ruby/io-wait] Run have_func with the header providing the declarations
https://github.com/ruby/io-wait/commit/48309d7877
2025-07-24 12:21:34 +09:00
Nobuyoshi Nakada
5c74f2a79b [ruby/json] Run have_func with the header providing the declarations
https://github.com/ruby/json/commit/95fb084027
2025-07-24 12:21:34 +09:00
Nobuyoshi Nakada
f82b9d8d7b [ruby/strscan] Run have_func with the header providing the declarations
https://github.com/ruby/strscan/commit/18c0a59b65
2025-07-24 12:21:34 +09:00
Nobuyoshi Nakada
eba9fa20b5 [ruby/strscan] Update extconf.rb
(https://github.com/ruby/strscan/pull/158)

- `have_func` includes "ruby.h" by default.
- include "ruby/re.h" where `rb_reg_onig_match` is declared.

https://github.com/ruby/strscan/commit/1ac96f47e9
2025-07-24 12:21:34 +09:00
Nobuyoshi Nakada
b7aca78cee [ruby/io-console] Use gperf 3.1 to generate ANSI-C code
https://github.com/ruby/io-console/commit/3798aae42d
2025-05-22 18:32:10 +09:00
Hiroshi SHIBATA
64d93539e7 Merge strscan-3.0.7 2025-03-13 14:27:06 +09:00
Hiroshi SHIBATA
30379fa1e2 Merge strscan-3.0.6 2025-03-13 14:27:06 +09:00
Hiroshi SHIBATA
98fc456891
merge revision(s) 2b6fc9ea7212543a1be26768403f59c7a759b5ea: [Backport #21092]
[Bug #21092] Fallback variables after execonf has done

	When reading from a dummy makefile, the global variables initialized
	in `init_mkmf` may not be overridden.
	---
	 ext/extmk.rb | 6 +++---
	 1 file changed, 3 insertions(+), 3 deletions(-)
2025-02-28 15:06:44 +09:00
nagachika
2d62c5d3d9 merge revision(s) 0d16c36d0ab2afa2ec79b72b229e69c141ebdaba: [Backport #13831]
[win32/registry] Fallback to UTF-8 for unknown codepages

	There are some codepages like cp708 for which no ruby encoding exists:

	    $ ruby -e "Encoding.find('cp708')"
	    Traceback (most recent call last):
	    	1: from -e:1:in `<main>'
	    -e:1:in `find': unknown encoding name - cp708 (ArgumentError)

	win32/registry uses ENCODING to transcode error messages and expand environment
	variables from UTF-16LE, so using UTF-8 seems like the best choice and is better
	than a hard failure.

	This should resolve [Bug #13831]
2024-09-26 13:00:19 +09:00
nagachika
a8a2529144 merge revision(s) 97449338d6cb42d9dd7c9ca61550616e7e6b6ef6: [Backport #20649]
[Bug #20649] Allow `nil` as 2nd argument of `assign_error`

	Fallback to the last token element in that case, for the backward
	compatibilities.
2024-08-18 10:52:06 +09:00
nagachika
3fe51aa268 merge revision(s) fba8aff7af450e476e97b62385427dfa51850955, d8c6e91748871ab2287d7703347847fe18a292d2: [Backport #20592]
[Bug #20592] Fix segfault when sending NULL to freeaddrinfo

	On alpine freeaddrinfo does not accept NULL pointer

	Fix dangling `else`
2024-07-20 13:05:33 +09:00
nagachika
a6b7aad954 merge revision(s) 7e4b1f8e1935a10df3c41ee60ca0987d73281126: [Backport #20322]
[Bug #20322] Fix rb_enc_interned_str_cstr null encoding

	The documentation for `rb_enc_interned_str_cstr` notes that `enc` can be
	a null pointer, but this currently causes a segmentation fault when
	trying to autoload the encoding. This commit fixes the issue by checking
	for NULL before calling `rb_enc_autoload`.
2024-07-15 13:40:01 +09:00
nagachika
2d686e1019 merge revision(s) ae8990aef098410ecc2b5f48fea9d7d171a3c5f6: [Backport #20183]
Alias init functions

	The extension library has each initialization function named "Init_" +
	basename. If multiple extensions have the same base name (such as
	cgi/escape and erb/escape), the same function will be registered for
	both names.

	To fix this conflict, rename the initialization functions under sub
	directories using using parent names, when statically linking.
2024-05-16 11:36:47 +09:00
nagachika
b12343c3b6 merge revision(s) d2cd903c85f38f42c6aefc6d97a1558f74d8d9db:
[ruby/openssl] pkey/ec: constify

	https://github.com/ruby/openssl/commit/6fb3499a7b
	---
	 ext/openssl/ossl_pkey_ec.c | 2 +-
	 1 file changed, 1 insertion(+), 1 deletion(-)
2024-03-10 19:12:31 +09:00
nagachika
99c9aeef4b merge revision(s) b8a3f1bd456f92866c4a7bd83235f78c574784a8:
Fix crash in tracing object allocations

	ObjectSpace.trace_object_allocations_start could crash since it adds a
	TracePoint for when objects are freed. However, TracePoint could crash
	since it modifies st tables while inside the GC that is trying to free
	the object. This could cause a memory allocation to happen which would
	crash if it triggers another GC.

	See a crash log: http://ci.rvm.jp/results/trunk@ruby-sp1/4373707
	---
	 ext/objspace/depend           | 1 +
	 ext/objspace/object_tracing.c | 7 +++++++
	 gc.h                          | 4 ++--
	 3 files changed, 10 insertions(+), 2 deletions(-)
2024-01-18 12:57:01 +09:00
nagachika
5dae6eb55e merge revision(s) 051a874325c177e040301878069c2b28f5d06ce6: [Backport #20096]
Fix memory overread in registry.rb

	The terminator is not actually getting filled in; we're simply passing
	(two) bytes of empty memory as the NUL terminator. This can lead to
	garbage characters getting written to registry values.

	Fix this by explicitly putting a WCHAR_NUL character into the string to
	be sent to the registry API, like we do in the MULTI_SZ case.

	[Bug #20096]
	---
	 ext/win32/lib/win32/registry.rb | 7 ++-----
	 1 file changed, 2 insertions(+), 5 deletions(-)
2024-01-18 11:53:29 +09:00
nagachika
ddbab4f837 merge revision(s) 6b66b5fdedb2c9a9ee48e290d57ca7f8d55e01a2: [Backport #19902]
[Bug #19902] Update the coderange regarding the changed region

	---
	 ext/-test-/string/set_len.c       | 10 ++++++++++
	 string.c                          | 27 +++++++++++++++++++++++++++
	 test/-ext-/string/test_set_len.rb | 29 +++++++++++++++++++++++++++++
	 3 files changed, 66 insertions(+)
2023-09-30 13:51:18 +09:00
eileencodes
8a3d57971c Fix cvar caching when class is cloned
The class variable cache that was added in
https://github.com/ruby/ruby/pull/4544 changed the behavior of class
variables on cloned classes. As reported when a class is cloned AND a
class variable was set, and the class variable was read from the
original class, reading a class variable from the cloned class would
return the value from the original class.

This was happening because the IC (inline cache) is stored on the ISEQ
which is shared between the original and cloned class, therefore they
share the cache too.

To fix this we are now storing the `cref` in the cache so that we can
check if it's equal to the current `cref`. If it's different we don't
want to read from the cache. If it's the same we do. Cloned classes
don't share the same cref with their original class.

This will need to be backported to 3.1 in addition to 3.2 since the bug
exists in both versions.

We also added a marking function which was missing.

Fixes [Bug #19379]

Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2023-07-01 14:17:30 +09:00
NARUSE, Yui
7246cd0081 merge revision(s) fad48fefe19cc282a5b209944244a3713359b47f: [Backport #19399]
[Bug #19399] Parsing invalid heredoc inside block parameter

	Although this is of course invalid as Ruby code, allow to just parse
	and tokenize.
	---
	 ext/ripper/lib/ripper/lexer.rb |  2 +-
	 test/ripper/test_lexer.rb      | 12 ++++++++++++
	 2 files changed, 13 insertions(+), 1 deletion(-)
2023-02-07 13:46:36 +09:00
NARUSE, Yui
1689d8bb48 merge revision(s) 21dced8b01823a991829b66ffdc8ffc635965c76: [Backport #19389]
[ruby/stringio] [Bug #19389] Fix chomping with longer separator

	https://github.com/ruby/stringio/commit/eb322a9716
	---
	 ext/stringio/stringio.c        | 5 +++--
	 test/stringio/test_stringio.rb | 2 ++
	 2 files changed, 5 insertions(+), 2 deletions(-)
2023-01-31 11:08:50 +09:00
Hiroshi SHIBATA
edb83dc3a2
Revert the additional change from openssl-3.1.0
Revert "[ruby/openssl] pkey/ec: constify"

  This reverts commit d2cd903c85f38f42c6aefc6d97a1558f74d8d9db.
2022-12-23 19:37:24 +09:00
Nobuyoshi Nakada
d2cd903c85 [ruby/openssl] pkey/ec: constify
https://github.com/ruby/openssl/commit/6fb3499a7b
2022-12-23 11:42:15 +09:00
Hiroshi SHIBATA
3ade713967
Bump version to 1.6.2 2022-12-23 09:51:52 +09:00
Hiroshi SHIBATA
ba34208800
Bump up Racc parser version 2022-12-23 09:51:35 +09:00
Johnny Willemsen
6438f3cad6 [ruby/racc] Removed old originalId in comment
https://github.com/ruby/racc/commit/1dfbef8e99
2022-12-23 09:46:59 +09:00
Kazuki Yamaguchi
2d2baaf2f4 [ruby/openssl] Ruby/OpenSSL 3.1.0
https://github.com/ruby/openssl/commit/c2f7d775c6
2022-12-23 09:39:15 +09:00
Kazuki Yamaguchi
a778305919 [ruby/openssl] Ruby/OpenSSL 3.0.2
https://github.com/ruby/openssl/commit/48b79333e0
2022-12-23 09:39:15 +09:00
Kazuki Yamaguchi
046aadb89b [ruby/openssl] Ruby/OpenSSL 2.2.3
https://github.com/ruby/openssl/commit/04acccd692
2022-12-23 09:39:15 +09:00
Joe Truba
0e11d2c3f8 [ruby/openssl] pkey/ec: check private key validity with OpenSSL 3
The behavior of EVP_PKEY_public_check changed between OpenSSL 1.1.1
and 3.0 so that it no longer validates the private key. Instead, private
keys can be validated through EVP_PKEY_private_check and
EVP_PKEY_pairwise_check.

[ky: simplified condition to use either EVP_PKEY_check() or
EVP_PKEY_public_check().]

https://github.com/ruby/openssl/commit/e38a63ab3d
2022-12-23 09:39:15 +09:00
Yuta Saito
782777a803 [ruby/openssl] Undefine OpenSSL::SSL for no socket platforms
This fixes a linkage error about `ossl_ssl_type` on platforms which do
not have socket, like WASI.

Even before this patch, some items are disabled under `OPENSSL_NO_SOCK` since
ee22fad45d
However, due to some new use of OpenSSL::SSL::Socket over the past few years,
the build under `OPENSSL_NO_SOCK` had been broken.

This patch guards whole `OpenSSL::SSL` items by `OPENSSL_NO_SOCK`.

[ky: adjusted to apply on top of my previous commit that removed the
OpenSSL::ExtConfig, and added a guard to lib/openssl/ssl.rb.]

https://github.com/ruby/openssl/commit/b0cfac6a96
2022-12-23 09:39:15 +09:00
Kazuki Yamaguchi
e6ca644329 [ruby/openssl] ssl: remove OpenSSL::ExtConfig
This module was introduced in 2015 for internal use within this library.
Neither of the two constants in it is used anymore. I don't think we
will be adding a new constant in the foreseeable future, either.

OPENSSL_NO_SOCK is unused since commit https://github.com/ruby/openssl/commit/998d66712a78 (r55191).
HAVE_TLSEXT_HOST_NAME is unused since commit https://github.com/ruby/openssl/commit/4eb4b3297a92.

https://github.com/ruby/openssl/commit/eed3894bda
2022-12-23 09:39:15 +09:00
Kazuki Yamaguchi
dd6f3276e0 [ruby/openssl] ssl: disable NPN support on LibreSSL
As noted in commit https://github.com/ruby/openssl/commit/a2ed156cc9f1 ("test/test_ssl: do not run NPN tests
for LibreSSL >= 2.6.1", 2017-08-13), NPN is known not to work properly
on LibreSSL.

Disable NPN support on LibreSSL, whether OPENSSL_NO_NEXTPROTONEG is
defined or not.

NPN is less relevant today anyway. Let's also silence test suite when
it's not available.

https://github.com/ruby/openssl/commit/289f6e0e1f
2022-12-23 09:39:15 +09:00
Kazuki Yamaguchi
d6c16dd3e6 [ruby/openssl] ssl: update TLS1_3_VERSION workaround for older LibreSSL versions
The macro is now defined by default in LibreSSL 3.4+. Let's document it
for future readers.

https://github.com/ruby/openssl/commit/935698e9f9
2022-12-23 09:39:15 +09:00
Nobuyoshi Nakada
6df4d272c3 [ruby/openssl] Suppress deprecation warnings by OpenSSL 3
https://github.com/ruby/openssl/commit/91657a7924
2022-12-23 09:39:15 +09:00
Nobuyoshi Nakada
d7d1bb3e87 [ruby/openssl] Constify when building with OpenSSL 3
https://github.com/ruby/openssl/commit/c0023822fe
2022-12-23 09:39:15 +09:00
Nobuyoshi Nakada
2bc7eac822 [ruby/openssl] Check for functions with arguments
https://github.com/ruby/openssl/commit/b67aaf925d
2022-12-23 09:39:14 +09:00
Joe Truba
ca7a6b1553 [ruby/openssl] pkey/ec: fix ossl_raise() calls using cEC_POINT instead of eEC_POINT
https://github.com/ruby/openssl/commit/b2e9f5e132
2022-12-23 09:39:14 +09:00
Joe Truba
13137236dc [ruby/openssl] raise when EC_POINT_cmp or EC_GROUP_cmp error instead of returning true
https://github.com/ruby/openssl/commit/e1e8f3cebe
2022-12-23 09:39:14 +09:00
Hiroshi SHIBATA
1998d97908
[ruby/date] Bump version to 3.3.3
https://github.com/ruby/date/commit/ea3644a7c4
2022-12-19 10:50:21 +09:00
Nobuyoshi Nakada
c316a5f2f1 [ruby/date] Adjust format [ci skip]
https://github.com/ruby/date/commit/71c35b4054
2022-12-18 03:03:54 +00:00
Nobuyoshi Nakada
b8cc0992c6 [ruby/date] Extract head_match_p and abbreviated name length constants
https://github.com/ruby/date/commit/3f666fa882
2022-12-18 02:58:51 +00:00
Nobuyoshi Nakada
df49bf8150 [ruby/date] Consider the length of string to parse
https://github.com/ruby/date/commit/3bfed83ce7
2022-12-18 02:58:50 +00:00
Nobuyoshi Nakada
49dc424ff3 [ruby/date] Remove extz_pats table
https://github.com/ruby/date/commit/945e26e243
2022-12-18 02:58:49 +00:00
Nobuyoshi Nakada
70c905963e [ruby/date] Remove merid_names table
https://github.com/ruby/date/commit/7fe2bd5f94
2022-12-18 02:58:48 +00:00
Nobuyoshi Nakada
6efeaabef0 [ruby/date] Match abbreviated day and month names with head of full names
https://github.com/ruby/date/commit/a45f8f03c9
2022-12-18 02:58:47 +00:00
Hiroshi SHIBATA
11f3bef260 [ruby/date] Bump version to 3.3.2
https://github.com/ruby/date/commit/7afd9d4615
2022-12-16 06:36:03 +00:00
Hiroshi SHIBATA
d95ee11462 [ruby/io-console] Bump version to 0.6.0
https://github.com/ruby/io-console/commit/441528e3eb
2022-12-16 03:45:11 +00:00
Hiroshi SHIBATA
7e26ff7dc0 [ruby/io-wait] Bump version to 0.3.0
https://github.com/ruby/io-wait/commit/940ba319d3
2022-12-16 02:36:21 +00:00