none
デバックが通らず困っています RRS feed

  • 質問

  • 下記のエラーが発生しており、困っています.わかる方がいらっしゃれば教えて下さると幸いです.

    「Run-Time Check Failure \#2 - Stack around the variable 'buff' was corrupted.」

    以下ソースコードです.a~dは長いので変更してありますが特にbuffを使っていないので簡略化しております.

    よろしくお願いいたします.

    #define a 16

    int32_t xy(app_id_t *app_id) {

    /* 変数宣言・初期化 */
        //宣言
    uint8_t buff[16 * 2 + 1]; //バッファ
    //uint8_t *str[a * 2 + 1];
        int32_t result; //結果
        static uint8_t initialized = 0; //初期化
        //初期化
        result = 0;

        memset(buff, 0, a*2+1);

        /* メイン処理 */
        //排他制御
    b(&d);
        if(initialized) {
            //初期化
            b(&d, NULL);
            initialized = 1;
        }
        b(&d, NULL);

        if(!app_id) {
            result = -EINVAL;
        } else {
            //16進数
            hex2str((uint8_t *)app_id, sizeof(app_id_t), buff);

            //ロック
            b(&d, NULL);

            result = c(app_id);

            //コピー
            if(result >= 0) {
                memcpy(&d, app_id, sizeof(app_id_t));
            }

            //アンロック
            b(& d, NULL);
        }

        /* 関数終了 */
        //返り値: 処理コード
        return result;

    }

    void hex2str(uint8_t *id, int32_t len, uint8_t *buf) {
            int32_t i;
            for (i = 0; i < len; i++) {
                    sprintf(&buf[i * 2], "%02x", *(id + i));
            }
            buf[len * 2] = '\0';
    }

    2019年12月23日 21:35

すべての返信

  • #define a 16
    uint8_t buff[16 * 2 + 1];
    memset(buff, 0, a*2+1);
    hex2str((uint8_t *)app_id, sizeof(app_id_t), buff);
    
    作ったbuffは使わないんです?
    いちいちサイズ指定がバラバラなのは気になりますネ。 sizeof(app_id_t)は16以外はあり得ないという遠回しな主張? 
    #全部
    sizeof(app_id_t)を使って統一すれば、とは思いますが

    jzkey

    2019年12月23日 23:01
  • アップルストアさん、こんにちは。フォーラムオペレーターのクモです。 
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご質問いただいた件ですが、その後いかがでしょうか。
    jzkeyさんから寄せられた投稿はお役に立ちましたか。

    参考になった投稿には [回答としてマーク] をお願い致します。

    設定いただくことで、
    他のユーザーもお役に立つ回答を見つけやすくなります。

    お手数ですが、ご協力の程どうかよろしくお願いいたします。

    MSDN/ TechNet Community Support Kumo ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2019年12月26日 6:40
    モデレータ