◀ANSI版開発トップへ
  • 3289 mrc2brcのバグ修正
    • 3294 Re: mrc2brcのバグ修正
      • 3295 Re2: mrc2brcのバグ修正
      • 3296 Re2: mrc2brcのバグ修正
  • [3289] mrc2brcのバグ修正 もか 2003年10月31日 18:11

    RcCvt::setErr()で、未初期化のバッファに対し、strcatで文字列を追加しています。
    ついでに、バッファ確保で+1しなくてもいいはず。

    diff -u ..\..\ssrc_2003-09-20\btool\rcCvt.cpp D:\network\LavieZ\dev\sakura\ssrc_2003-0
    9-20wchar09\btool\RcCvt.cpp
    --- ssrc_2003-10-13mui\btool\RcCvt.cpp Fri Feb 01 22:44:08 2002
    +++ ssrc_2003-09-20wchar09\btool\RcCvt.cpp Fri Oct 31 18:00:16 2003
    @@ -37,14 +37,17 @@
    char *t;
    int lcr = strlen(errstr)+2;
    if( strerr ){
    - t = (char*)realloc( strerr , strlen(strerr)+lcr+1 );
    + t = (char*)realloc( strerr , strlen(strerr)+lcr );
    }else{
    - t = (char*)malloc( lcr+1 );
    + t = (char*)malloc( lcr );
    }
    if( t==NULL){
    return false;
    }

    + if( !strerr ){
    + strcpy( t , "" );
    + }
    strcat( t, "\n" );
    strcat( t, errstr );
    strerr = t;
    • [3294] Re: mrc2brcのバグ修正 げんた 2003年11月02日 03:21

      >+ if( !strerr ){
      >+ strcpy( t , "" );
      >+ }
      mallocの代わりにcallocを使って0クリアを保証したほうが流れがわかりやすいかと思います.
      • [3295] Re2: mrc2brcのバグ修正 じゅうじ 2003年11月02日 12:31

        ▼ もかさん
        >+ if( !strerr ){
        >+ strcpy( t , "" );
        >+ }

        strcpyは、関数なので、
        + if( !strerr ){
        + *t = '\0';
        + }
        が、早くて簡単だと思う。
      • [3296] Re2: mrc2brcのバグ修正 じゅうじ 2003年11月02日 12:53

        ▼ げんたさん
        早いとはいい難いので、別の意味で解りやすくしてみました。
        - strcat( t, "\n" );
        + if( strerr ){
        + strcat( t, "\n" );
        + }else{
        + *t = '\0';
        + }