Ticket #577 (closed defect: fixed)
EXC_BAD_ACCESS in IO.read
| Reported by: | spamtrap1@… | Owned by: | lsansonetti@… |
|---|---|---|---|
| Priority: | minor | Milestone: | MacRuby 0.7 |
| Component: | MacRuby | Keywords: | |
| Cc: | babs.devs@… |
Description
I had a small spelling accident tonight, which caused me to stumble over this :
using ios.read, with an argument of nil, i.e.
s = ""
f = File.open("xxx")
while (!f.eof?)
s += f.read(nil)
end
will cause this :
Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Application Specific Information: objc[26488]: garbage collection is ON 0 libSystem.B.dylib 0x00007fffffe007c5 __memcpy + 37 1 libauto.dylib 0x00007fff83a1f210 auto_zone_write_barrier_memmove + 96 2 libauto.dylib 0x00007fff83a2020e auto_realloc(_malloc_zone_t*, void*, unsigned long) + 878 3 libSystem.B.dylib 0x00007fff84c1ab3b malloc_zone_realloc + 92 4 com.apple.CoreFoundation 0x00007fff8215eb49 __CFDataGrow + 233 5 com.apple.CoreFoundation 0x00007fff82184e05 CFDataSetLength + 181 6 libmacruby.dylib 0x000000010005c1fa rb_io_read_internal + 522 7 libmacruby.dylib 0x000000010005d6b6 rb_io_eof + 54 8 libmacruby.dylib 0x000000010016d32f rb_vm_dispatch + 7279
Macruby version is Nightly build from 2010/01/26.
The weird thing is i can only reproduce it with large files. My test files are CD sized, created with "dd if=/dev/random of=test.dat bs=65536 count=10000"
I know calling read(nil) twice on a file doesn't make much sense, but reading the docs leads me to believe it should just return "" ( http://ruby-doc.org/core/classes/IO.html)
Change History
Note: See
TracTickets for help on using
tickets.

