Project

General

Profile

Actions

Backport #6127

closed

IO#ioctl range error in 1.9.3

Added by dlampa (Donovan Lampa) about 12 years ago. Updated over 11 years ago.

Status:
Closed
[ruby-core:43152]

Description

In 32-bit implementations of 1.9.3 passing an (apparently) unsigned value (BIOCIMMEDIATE = 0x80044270) to ioctl throws range error:

ruby-1.9.3-p125 :001 > a,b = IO.pipe
=> [#<IO:fd 5>, #<IO:fd 6>]
ruby-1.9.3-p125 :002 > a.ioctl(0x80044270, "\x01")
RangeError: bignum too big to convert into long' from (irb):2:in ioctl'
from (irb):2
from /Users/dlampa/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `'
ruby-1.9.3-p125 :001 > 0x80044270.class
=> Bignum

When in 32-bit 1.9.1 and 1.9.2 it does not:

ruby-1.9.1-p243 :001 > a,b = IO.pipe
=> [#IO:0x202fefc, #IO:0x202fec4]
ruby-1.9.1-p243 :002 > a.ioctl(0x80044270, "\x01")
Errno::ENOTTY: Inappropriate ioctl for device
from (irb):2:in ioctl' from (irb):2 from /Users/dlampa/.rvm/rubies/ruby-1.9.1-p243/bin/irb:16:in '
ruby-1.9.1-p243 :001 > 0x80044270.class
=> Bignum

OS is [x86_64-darwin10.8.0] however ruby was compiled as 32-bit through rvm using:
rvm_archflags="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" rvm install [ruby-version] --patch osx-arch-fix

The patch is installed in ~/.rvm/patches/ruby/1.9.3/ and is as follows:

--- a/Makefile.in 2010-11-11 15:54:26.000000000 -0600
+++ b/Makefile.in 2010-11-11 15:55:24.000000000 -0600
@@ -55,7 +55,7 @@ XLDFLAGS = @XLDFLAGS@ $(EXTLDFLAGS)
EXTLIBS =
LIBS = @LIBS@ $(EXTLIBS)
MISSING = @LIBOBJS@ @ALLOCA@
-LDSHARED = @LIBRUBY_LDSHARED@
+LDSHARED = @LIBRUBY_LDSHARED@ $(LDFLAGS)
DLDFLAGS = @LIBRUBY_DLDFLAGS@ $(EXTLDFLAGS) @ARCH_FLAG@
SOLIBS = @SOLIBS@
MAINLIBS = @MAINLIBS@

this issue appears to be related (http://bugs.ruby-lang.org/issues/5429), but I don't speak Japanese.


Files

ruby-io-c.patch (10.3 KB) ruby-io-c.patch dlampa (Donovan Lampa), 10/10/2012 11:20 PM

Related issues 2 (0 open2 closed)

Related to Ruby master - Bug #5429: 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合Closedmetanest (Makoto Kishimoto)10/10/2011Actions
Has duplicate Ruby master - Bug #7144: [mingw] 1.9.3 backport r37138 breaks buildClosednaruse (Yui NARUSE)10/12/2012Actions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0