[#3726] Fixnum#clone and Float#clone raise different exceptions — "David A. Black" <dblack@...>

Hi --

15 messages 2004/11/12
[#3749] Re: Fixnum#clone and Float#clone raise different exceptions — "David A. Black" <dblack@...> 2004/11/16

Hi --

[#3751] Re: Fixnum#clone and Float#clone raise different exceptions — Yukihiro Matsumoto <matz@...> 2004/11/16

Hi,

[#3752] Re: Fixnum#clone and Float#clone raise different exceptions — "David A. Black" <dblack@...> 2004/11/16

Hi --

[#3785] The latest 1.8.2 cvs prints parse error when starting extension compiling — Yukihiro Matsumoto <matz@...>

Hi,

13 messages 2004/11/23
[#3787] Re: The latest 1.8.2 cvs prints parse error when starting extension compiling — Johan Holmberg <holmberg@...> 2004/11/23

[ ruby-Bugs-1095 ] current ruby 1.8.2 cvs has inconsistent string handling (null char in string error)

From: noreply@...
Date: 2004-11-24 14:49:16 UTC
List: ruby-core #3806
Bugs item #1095, was opened at 2004-11-24 16:48
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1095&group_id=426

Category: Core
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Ville Mattila (mulperi)
Assigned to: Nobody (None)
Summary: current ruby 1.8.2 cvs has inconsistent string handling (null char in string error)

Initial Comment:
Here are the info:
16:46 > cat foo.rb 
    def self.search_loadpath(file)
p file
      result = Dir.glob("{#{($LOAD_PATH).join(',')}}/#{file}{,.rb,.so}")
      p result
      result.delete_if {|f|  p f;File.directory?(f)}.size > 0
      result
    end
search_loadpath("openssl.so")
16:46 > ruby foo.rb 
"openssl.so"
["/sb/tb/toolbox3/sparc-sun-solaris2.5.1/lib/ruby/1.8/sparc-solaris2.8/openssl.so"]
"/sb/tb/toolbox3/sparc-sun-solaris2.5.1/lib/ruby/1.8/sparc-solaris2.8/openssl.so"
foo.rb:5:in `directory?': string contains null byte (ArgumentError)
        from foo.rb:5:in `search_loadpath'
        from foo.rb:5:in `delete_if'
        from foo.rb:5:in `search_loadpath'
        from foo.rb:8
16:46 > ruby -v
ruby 1.8.2 (2004-11-24) [sparc-solaris2.8]

with a little bit debugging added to string.c
I get
"openssl.so"
["/sb/tb/toolbox3/sparc-sun-solaris2.5.1/lib/ruby/1.8/sparc-solaris2.8/openssl.so"]
"/sb/tb/toolbox3/sparc-sun-solaris2.5.1/lib/ruby/1.8/sparc-solaris2.8/openssl.so"
string is /sb/tb/toolbox3/sparc-sun-solaris2.5.1/lib/ruby/1.8/sparc-solaris2.8/openssl.so.so 79 != 82
foo.rb:5:in `directory?': string contains null byte (ArgumentError)
        from foo.rb:5:in `search_loadpath'
        from foo.rb:5:in `delete_if'
        from foo.rb:5:in `search_loadpath'
        from foo.rb:8


------
 cvs diff -up string.c
Index: string.c
===================================================================
RCS file: /src/ruby/string.c,v
retrieving revision 1.182.2.32
diff -u -p -r1.182.2.32 string.c
--- string.c    22 Nov 2004 15:29:49 -0000      1.182.2.32
+++ string.c    24 Nov 2004 14:47:58 -0000
@@ -569,6 +569,7 @@ rb_string_value_cstr(ptr)
     char *s = RSTRING(str)->ptr;
 
     if (!s || RSTRING(str)->len != strlen(s)) {
+       printf("string is %s %d != %d\n", s ? s : "NULL",  RSTRING(str)->len,strlen(s));
        rb_raise(rb_eArgError, "string contains null byte");
     }
     return s;


----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1698&aid=1095&group_id=426

In This Thread

Prev Next