Project

General

Profile

Actions

Bug #6584

closed

Segmentation fault in DL::TestFunc#test_qsort1 on sparc Solaris10

Added by ngoto (Naohisa Goto) almost 12 years ago. Updated almost 12 years ago.

Status:
Closed
Target version:
-
ruby -v:
2.0.0dev (2012-06-08) [sparc64-solaris2.10]
Backport:
[ruby-dev:45733]

Description

qsort(3)のプロトタイプ宣言は
void qsort(void *base, size_t nmemb, size_t size,
int(*compar)(const void *, const void *));
ですが、test/dl/test_func.rb の test_qsort1() と test_qsort2() では
qsort = Function.new(CFunc.new(@libc (Eugene Pimenov)['qsort'], TYPE_VOID, 'qsort'),
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP])
のように、size_t の変数を TYPE_INT で宣言しています。
このため、sparc Solaris10 の64ビット環境では、Segmentation Fault が発生します。
TYPE_INT を TYPE_SIZE_T に変更すると大丈夫でした。

Actions #1

Updated by ngoto (Naohisa Goto) almost 12 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r36066.
Naohisa, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


  • test/dl/test_func.rb (test_qsort1, test_qsort2): use TYPE_SIZE_T
    for size_t variables. [ruby-dev:45733] [Bug #6584]
Actions

Also available in: Atom PDF

Like0
Like0