[#7286] Re: ruby-dev summary 28206-28273 — ara.t.howard@...

On Thu, 2 Feb 2006, Minero Aoki wrote:

23 messages 2006/02/02
[#7292] ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — mathew <meta@...> 2006/02/02

[#7293] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — mathew <meta@...> 2006/02/02

mathew wrote:

[#7298] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — James Britt <ruby@...> 2006/02/03

mathew wrote:

[#7310] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

I'm not sure we even need the 'with' syntax. Even if we do, it breaks

[#7311] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Eero Saynatkari <ruby-ml@...> 2006/02/07

On 2006.02.07 10:03, Evan Webb wrote:

[#7313] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

Umm, on what version are you seeing a warning there? I don't and never

[#7315] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Eero Saynatkari <ruby-ml@...> 2006/02/07

On 2006.02.07 14:47, Evan Webb wrote:

[#7316] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

I'd by far prefer it never emit a warning. The warning is assumes you

[#7305] Re: Problem with weak references on OS X 10.3 — Mauricio Fernandez <mfp@...>

On Sun, Feb 05, 2006 at 08:33:40PM +0900, Christian Neukirchen wrote:

28 messages 2006/02/05
[#7401] Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Eric Hodel <drbrain@...7.net> 2006/02/22

On Feb 5, 2006, at 5:05 AM, Mauricio Fernandez wrote:

[#7414] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Mauricio Fernandez <mfp@...> 2006/02/23

On Wed, Feb 22, 2006 at 02:21:24PM +0900, Eric Hodel wrote:

[#7428] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/26

In article <1140968746.321377.18843.nullmailer@x31.priv.netlab.jp>,

[#7444] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — nobu@... 2006/02/28

Hi,

[#7445] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <m1FDshr-0006MNC@Knoppix>,

[#7447] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <87irr047sx.fsf@m17n.org>,

[#7448] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <87vev0hxu5.fsf@m17n.org>,

[#7465] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — "Evan Webb" <evanwebb@...> 2006/03/01

Just my quick 2 cents...

[#7468] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/03/01

In article <92f5f81d0602281855g27e78f4eua8bf20e0b8e47b68@mail.gmail.com>,

[#7403] Module#define_method "send hack" fails with Ruby 1.9 — Emiel van de Laar <emiel@...>

Hi List,

12 messages 2006/02/22
[#7404] Re: Module#define_method "send hack" fails with Ruby 1.9 — George Ogata <g_ogata@...> 2006/02/22

Emiel van de Laar <emiel@rednode.nl> writes:

[#7406] Re: Module#define_method "send hack" fails with Ruby 1.9 — dblack@... 2006/02/22

Hi --

[#7442] GC Question — zdennis <zdennis@...>

I have been posting to the ruby-talk mailing list about ruby memory and GC, and I think it's ready

17 messages 2006/02/27

Re: [ ruby-Bugs-3399 ] [PATCH] OS X core dumps when $0 is changed and then loads shared libraries

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2006-02-02 10:45:51 UTC
List: ruby-core #7285
Hello.

>The problem is that Ruby is setting argv[1..argc-1] to 0 and OS X's dyld
>expects those to not be 0 as it uses them.  Postgres had the same problem
>and describes why dyld uses argv:
>
>http://archives.postgresql.org/pgsql-hackers/2003-11/msg00449.php

Interesting, but Starndard C gurantees argc and argv should be modifiable,
so I think this is OSX's bug.

>It's not clear to me why in one branch of the function at the end,
>origargv[1..argc-1] are set to 0 and in the other they are not.  Just out
>of consistently, it seems better to have both treat origargv[1..argc-1] the
>same and not set them to 0, which also prevents this core dump.
>
>Here's the patch:
>
>diff -ru ruby-1.8.4.orig/ruby.c ruby-1.8.4/ruby.c
>--- ruby-1.8.4.orig/ruby.c      2005-12-11 16:36:52.000000000 -0800
>+++ ruby-1.8.4/ruby.c   2006-01-31 22:13:18.000000000 -0800
>@@ -1067,8 +1067,6 @@
>        *s++ = '\0';
>        while (++i < len)
>            *s++ = ' ';
>-       for (i = 1; i < origargc; i++)
>-           origargv[i] = 0;
>     }
>     rb_progname = rb_tainted_str_new2(origargv[0]);
> #endif

If this patch is applied, for example after set_arg0
origargv[i] (i >= 1) can point to the location which is filled with ' ',
and can be unterminated with '\0' like this

  "fooboofoo\0                   ?"
                   ^
                   origargv[1]

  if '?' != '\0', strlen(origargv[i]) will access out of memory block


How about this? This is shorter, probably safer.

Index: ruby.c
===================================================================
RCS file: /src/ruby/ruby.c,v
retrieving revision 1.83.2.13
diff -u -w -b -p -r1.83.2.13 ruby.c
--- ruby.c	1 Feb 2006 13:27:47 -0000	1.83.2.13
+++ ruby.c	2 Feb 2006 10:28:25 -0000
@@ -1065,18 +1065,9 @@ set_arg0(val, id)
 
     if (i >= len) {
 	i = len;
-	memcpy(origargv[0], s, i);
-	origargv[0][i] = '\0';
     }
-    else {
 	memcpy(origargv[0], s, i);
-	s = origargv[0]+i;
-	*s++ = '\0';
-	while (++i < len)
-	    *s++ = ' ';
-	for (i = 1; i < origargc; i++)
-	    origargv[i] = 0;
-    }
+    memset(origargv[0] + i, '\0', len - i + 1);
     rb_progname = rb_tainted_str_new2(origargv[0]);
 #endif
 }



In This Thread