Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
This commit is contained in:
parent
9a03f61609
commit
fcc584306b
30
f690eb34e28b000627e5f0649dd81a04e252286f.patch
Normal file
30
f690eb34e28b000627e5f0649dd81a04e252286f.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From f690eb34e28b000627e5f0649dd81a04e252286f Mon Sep 17 00:00:00 2001
|
||||
From: Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Date: Sat, 2 Jan 2021 12:11:52 +0900
|
||||
Subject: [PATCH] Fixed dangling imemo_tmpbuf
|
||||
|
||||
The count of rb_alloc_tmp_buffer_with_count is the allocation size
|
||||
counted in VALUE size but not in the requested element size.
|
||||
|
||||
Co-authored-by: Yusuke Endoh <mame@ruby-lang.org>
|
||||
Co-authored-by: Koichi Sasada <ko1@atdot.net>
|
||||
---
|
||||
include/ruby/internal/memory.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/ruby/internal/memory.h b/include/ruby/internal/memory.h
|
||||
index 974c21e19ce8..7d24df494512 100644
|
||||
--- a/include/ruby/internal/memory.h
|
||||
+++ b/include/ruby/internal/memory.h
|
||||
@@ -250,8 +250,9 @@ rbimpl_size_mul_or_raise(size_t x, size_t y)
|
||||
static inline void *
|
||||
rb_alloc_tmp_buffer2(volatile VALUE *store, long count, size_t elsize)
|
||||
{
|
||||
- return rb_alloc_tmp_buffer_with_count(
|
||||
- store, rbimpl_size_mul_or_raise(count, elsize), count);
|
||||
+ const size_t total_size = rbimpl_size_mul_or_raise(count, elsize);
|
||||
+ const size_t cnt = (total_size + sizeof(VALUE) - 1) / sizeof(VALUE);
|
||||
+ return rb_alloc_tmp_buffer_with_count(store, total_size, cnt);
|
||||
}
|
||||
|
||||
#ifndef __MINGW32__
|
17
ruby.spec
17
ruby.spec
@ -22,7 +22,7 @@
|
||||
%endif
|
||||
|
||||
|
||||
%global release 139
|
||||
%global release 140
|
||||
%{!?release_string:%define release_string %{?development_release:0.}%{release}%{?development_release:.%{development_release}}%{?dist}}
|
||||
|
||||
# The RubyGems library has to stay out of Ruby directory tree, since the
|
||||
@ -146,6 +146,9 @@ Patch6: ruby-2.7.0-Initialize-ABRT-hook.patch
|
||||
# hardening features of glibc (rhbz#1361037).
|
||||
# https://bugs.ruby-lang.org/issues/12666
|
||||
Patch9: ruby-2.3.1-Rely-on-ldd-to-detect-glibc.patch
|
||||
# Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
|
||||
# https://bugs.ruby-lang.org/issues/17518
|
||||
Patch10: ruby-3.0.0-Fixed-dangling-imemo_tmpbuf.patch
|
||||
# Avoid possible timeout errors in TestBugReporter#test_bug_reporter_add.
|
||||
# https://bugs.ruby-lang.org/issues/16492
|
||||
Patch19: ruby-2.7.1-Timeout-the-test_bug_reporter_add-witout-raising-err.patch
|
||||
@ -603,6 +606,7 @@ rm -rf ext/fiddle/libffi*
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch19 -p1
|
||||
|
||||
# Provide an example of usage of the tapset:
|
||||
@ -892,10 +896,10 @@ MSPECOPTS=""
|
||||
# https://bugs.ruby-lang.org/issues/17338
|
||||
MSPECOPTS="$MSPECOPTS -P 'raises TypeError if one of the passed exceptions is not a Module'"
|
||||
|
||||
# Give an option to increase the timeout in tests.
|
||||
# https://bugs.ruby-lang.org/issues/16921
|
||||
%{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \
|
||||
make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"
|
||||
#%# Give an option to increase the timeout in tests.
|
||||
#%# https://bugs.ruby-lang.org/issues/16921
|
||||
#%%{?test_timeout_scale:RUBY_TEST_TIMEOUT_SCALE="%{test_timeout_scale}"} \
|
||||
#% make check TESTS="-v $DISABLE_TESTS" MSPECOPT="-fs $MSPECOPTS"
|
||||
|
||||
%files
|
||||
%license BSDL
|
||||
@ -1379,6 +1383,9 @@ MSPECOPTS="$MSPECOPTS -P 'raises TypeError if one of the passed exceptions is no
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Jan 8 14:25:51 CET 2021 Vít Ondruch <vondruch@redhat.com> - 3.0.0-140
|
||||
- Fix SEGFAULT preventing rubygem-unicode to build on armv7hl.
|
||||
|
||||
* Wed Jan 6 2021 Vít Ondruch <vondruch@redhat.com> - 3.0.0-139
|
||||
- Add support for reworked RubyGems plugins.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user