◀Unicode版開発トップへ
  • 2140 C++アウトライン解析でスタック破壊
    • 2141 Re:C++アウトライン解析でスタック破壊
      • 2142 Re2:C++アウトライン解析でスタック破壊
    • 2143 Re:C++アウトライン解析でスタック破壊
  • [2140] C++アウトライン解析でスタック破壊 LR4 2014年03月10日 15:07

    UNICODE版rev3647をDebug_Unicodeでビルドしたsakura.exeで、
    ANSI版のほうのrev3648に含まれるCEditView_Command.cppを開いて
    アウトライン解析ダイアログを出す操作をしたところ、
    以下のメッセージが出てエラー停止しました。
    確認環境はWin7(32bit版), VS2005です。

    Release_Unicodeでは一見、何事も無く動作しているように見えますが、
    実は内部メモリは破壊されているのではないかと不安を感じます。
    大丈夫でしょうか?ご確認お願いします。

    ---------------------------
    Microsoft Visual C++ Debug Library
    ---------------------------
    Debug Error!

    Program: ...
    Module: (省略)\trunk2\sakura\Debug_Unicode\sakura.exe
    File: (省略)\trunk2\sakura_core\types\ctype_cpp.cpp
    Line: 1198

    Run-Time Check Failure #2 - Stack around the variable 'szTemplateName' was corrupted.

    (Press Retry to debug the application)
    ---------------------------
    中止(A) 再試行(R) 無視(I)
    ---------------------------

    追記:
    rev2134(v2.0.5.0相当)に戻して同じことを試してみましたが、
    その場合は特に問題なく動作しました。
    • [2141] Re:C++アウトライン解析でスタック破壊 もか 2014年03月10日 20:04

      現象確認しました。

      wcsncat(dest,src,n)の使い方が間違っていました。
      wcsncpyと違って、n+1文字書き込むのでバッファはwcslen(dest)+n+1が必要でした。
      あと、Len++していない場所がありました。
      https://sourceforge.net/p/sakura-editor/patchunicode/786/
      • [2142] Re2:C++アウトライン解析でスタック破壊 LR4 2014年03月10日 20:31

        ご対応ありがとうございます。
        > https://sourceforge.net/p/sakura-editor/patchunicode/786/
        パッチ適用し、エラー停止せずにアウトライン表示できることを確認しました。
    • [2143] Re:C++アウトライン解析でスタック破壊 suzz 2014年03月11日 23:01

      別件ですが、C/C++ アウトライン解析で一件不具合を見つけています。
      紅桜側では暫定改修を行ったのですが、本家のほうで修正いただけると助かります。

      https://bitbucket.org/suzzsegv/benizakura/commits/18497ccdd5f2aca409dd12659537255dc2500fc
      0