[#14614] 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ? — "K.Umakoshi" <pegacorn@...>

こんにちは。

18 messages 2001/09/02
[#14615] Re: 大小文字を無視した比較で ' 帰 ' == ' 蟻 ' ? — matz@... (Yukihiro Matsumoto) 2001/09/02

まつもと ゆきひろです

[#14662] How to abondon saved uid privilege — nobu.nakada@...

なかだです。

60 messages 2001/09/05
[#14663] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14672] Re: How to abondon saved uid privilege — nobu.nakada@... 2001/09/05

なかだです。

[#14677] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14678] Re: How to abondon saved uid privilege — matz@... (Yukihiro Matsumoto) 2001/09/05

まつもと ゆきひろです

[#14680] Re: How to abondon saved uid privilege — nagai@... 2001/09/05

永井@知能.九工大です.

[#14685] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <20010905184635H.nagai@ai.kyutech.ac.jp>

[#14687] Re: How to abondon saved uid privilege — "Akinori MUSHA" <knu@...> 2001/09/05

 ちょっと脱線します。 :)

[#14688] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <86ofopevkv.wl@archon.local.idaemons.org>

[#14691] Re: How to abondon saved uid privilege — matz@... (Yukihiro Matsumoto) 2001/09/05

まつもと ゆきひろです

[#14693] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/05

In message <999700675.662743.18683.nullmailer@ev.netlab.jp>

[#14703] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14707] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906111828R.nagai@ai.kyutech.ac.jp>

[#14708] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14709] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906132656Z.nagai@ai.kyutech.ac.jp>

[#14728] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14729] Re: How to abondon saved uid privilege — Takahiro Kambe <taca@...> 2001/09/06

In message <20010906174440D.nagai@ai.kyutech.ac.jp>

[#14732] Re: How to abondon saved uid privilege — nagai@... 2001/09/06

永井@知能.九工大です.

[#14774] Re: How to abondon saved uid privilege — nagai@... 2001/09/12

永井@知能.九工大です.

[#14841] Re: How to abondon saved uid privilege — nagai@... 2001/10/02

永井@知能.九工大です.

[#15026] setuid and seteuid — nagai@... 2001/11/02

永井@知能.九工大です.

[#15030] Re: setuid and seteuid — Tanaka Akira <akr@...17n.org> 2001/11/03

In article <20011102175733K.nagai@ai.kyutech.ac.jp>,

[#15032] Re: setuid and seteuid — nagai@... 2001/11/03

永井@知能.九工大です.

[#14743] [BUG] $_ on thread switching — nobu.nakada@...

なかだです。

24 messages 2001/09/07
[#14746] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/07

なかだです。

[#14747] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/07

まつもと ゆきひろです

[#14748] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[#14750] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/08

まつもと ゆきひろです

[#14752] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[#14753] Re: [BUG] $_ on thread switching — matz@... (Yukihiro Matsumoto) 2001/09/08

まつもと ゆきひろです

[#14755] Re: [BUG] $_ on thread switching — nobu.nakada@... 2001/09/08

なかだです。

[ruby-dev:14754] regex.c について

From: Osamu Shigematsu <shige@...>
Date: 2001-09-08 14:11:17 UTC
List: ruby-dev #14754
重松と申します。

はじめまして。こちらでは初めての発言となります。

MacOS 9.2 で Metrowerks CodeWarrior Pro 6 を使って開発をしています。(自宅、
趣味です) 会社では VineLinux 2.1.5 (intel) を使っていますが、こちらでは PHP
を使って開発をしています。

以後、よろしくお願いいたします。

PHP は ruby の正規表現ルーチンを使っている、ということを聞き、REALbasic
(http://www.realsoftware.com) という Macintosh 用の BASIC 言語でも、正規表現
を使えるように plugin を作成したいと考え、本日、ruby-1.6.4 をダウンロードさ
せて頂きました。

    ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.6.4.tar.gz

早速で恐縮なのですが、regex.c を読んでいるのですが、
どうもバグではないかと思える箇所があります。

DOUBLE_STACK というマクロが定義されているのですが、この中で、
xmalloc (実体は malloc?) や、xrealloc を呼び出し、
その失敗を一切確認していません。

    stackx = (type*)xmalloc(2 * xlen * sizeof(type));
    memcpy(stackx, stackb, xlen * sizeof (type));

このままだと、xmalloc が失敗したときに、不正な転送操作をすると思われます。

また、realloc() の使い方自体を間違えていると思われる箇所がありました。

re_compile_pattern の中ですが、realloc は最初の引数、
古いポインタが null の場合には、malloc と等価ですから、
if(bufp->buffer) のように確認する意味はありませんし、
realloc は失敗すると null を返しますが、元々渡したポインタは、
何もされませんから (もちろん解放もされない)、そのままリークすると思います。

インデントは自分が読みやすいように変えてあります。

#if 0    /* OLDIES */
        if(bufp->buffer){
            /* EXTEND_BUFFER loses when bufp->allocated is 0.  */
            bufp->buffer = (char*)xrealloc(bufp->buffer, INIT_BUF_SIZE);
        }else{
            /* Caller did not allocate a buffer.  Do it for them.  */
            bufp->buffer = (char*)xmalloc(INIT_BUF_SIZE);
        }
        if(!bufp->buffer) goto memory_exhausted;
#else    /* { os : 2001/09/08 } BUGFIX */
        {
            char *new_buffer = (char*)xrealloc(bufp->buffer, INIT_BUF_SIZE);
            if(!new_buffer) goto memory_exhausted;
            bufp->buffer = new_buffer;
        }
#endif

まだまだ C および ruby に対する理解が乏しいため、
どのように修正すればよいのかよく理解できていません。

この件について、何らかのアドバイスをいただければ幸いです。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp



In This Thread

Prev Next