OSDN Git Service

screen_object関数において、内部ブロックで宣言した変数をブロック外からアクセスしており、不正アドレスを参照していた。
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 5 Jan 2010 07:51:27 +0000 (07:51 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 5 Jan 2010 07:51:27 +0000 (07:51 +0000)
変数宣言を関数の最初に移動して不正アドレスの参照にならないようにした。

src/object1.c

index 4fc9bb6..e35dcba 100644 (file)
@@ -2363,6 +2363,7 @@ bool screen_object(object_type *o_ptr, u32b mode)
 
        u32b flgs[TR_FLAG_SIZE];
 
+       char temp[70 * 20];
        cptr            info[128];
        char o_name[MAX_NLEN];
        int wid, hgt;
@@ -2374,8 +2375,6 @@ bool screen_object(object_type *o_ptr, u32b mode)
 
        /* Extract the description */
        {
-               char temp[70 * 20];
-
                roff_to_buf(o_ptr->name1 ? (a_text + a_info[o_ptr->name1].text) :
                            (k_text + k_info[o_ptr->k_idx].text),
                            77 - 15, temp, sizeof(temp));