[ruby-core:66721] [ruby-trunk - Bug #10568] segmentation fault after pack & ioctl & unpack

From: balazs@...
Date: 2014-12-05 09:08:31 UTC
List: ruby-core #66721
Issue #10568 has been updated by Balazs Kutil.


Sorry, forgot to explicitly mention that this is running on linux and that sudo is required to run the snippet (because of the ioctl).

----------------------------------------
Bug #10568: segmentation fault after pack & ioctl & unpack
https://bugs.ruby-lang.org/issues/10568#change-50319

* Author: Balazs Kutil
* Status: Open
* Priority: Normal
* Assignee: Koichi Sasada
* Category: 
* Target version: 
* ruby -v: ruby 2.1.2p201 (2014-08-18 revision 47215) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
This snippet produces a segmentation fault on rubies on ruby_2_1 branch from git commit [1]
onwards and ruby_2_0_0 branch from commit [2] onwards. I was unable to reproduce the issue
on the current trunk [3]:
  
    require 'socket'
    SIOCETHTOOL = 0x8946
    i = ["lo", "\n"].pack("a16p")
    s = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
    s.ioctl(SIOCETHTOOL, i)
    i.unpack("a16p")[1]

This patch [4] fixes the issue for both 2_1 and 2_0_0 branches, although the test case it contains
does not produce a segfault (only raises an ArgumentError) on affected revisions.

[1] [659fd08f](https://github.com/ruby/ruby/commit/659fd08fc093117cc9970ed4590fcd226d81244c)
[2] [c41f74cf](https://github.com/ruby/ruby/commit/c41f74cf4c7ea246ee605a75b1b5cf8fdf9b412b)
[3] [bc0f1312](https://github.com/ruby/ruby/commit/bc0f131277af6b6cd65a5e75c3b8a2d9d8b073ad)
[4] [4b146b25](https://github.com/ruby/ruby/commit/4b146b25333c52ca4503dfc3c4215b583e8e9963)



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next