OSDN Git Service

getEditString で正しい長さの文字列を取得できない問題の修正
authoryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Thu, 14 May 2009 04:37:56 +0000 (04:37 +0000)
committeryoya <yoya@7c90b180-03d5-4157-b861-58a559ae9d1e>
Thu, 14 May 2009 04:37:56 +0000 (04:37 +0000)
(変数名より長い文字列だと途中で切れていました)

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/swfed/trunk@123 7c90b180-03d5-4157-b861-58a559ae9d1e

src/swf_tag_edit.c

index 586da97..4fe3369 100644 (file)
@@ -258,18 +258,20 @@ swf_tag_edit_get_string(void *detail,
                         char *variable_name, int variable_name_len) {
     swf_tag_edit_detail_t *swf_tag_edit = (swf_tag_edit_detail_t *) detail;
     char *data, *initial_text;
+    int initial_text_len = 0;
     if (strcmp(swf_tag_edit->edit_variable_name, variable_name)) {
         if (atoi(variable_name) != swf_tag_edit->edit_id) {
             return NULL;
         }
     }
     initial_text = swf_tag_edit->edit_initial_text;
-    data = malloc(variable_name_len + 1);
+    initial_text_len = strlen(initial_text);
+    data = malloc(initial_text_len + 1);
     if (data == NULL) {
         fprintf(stderr, "swf_tag_edit_get_string: Can't malloc\n");
         return NULL;
     }
-    memcpy(data, initial_text, variable_name_len + 1);
+    memcpy(data, initial_text, initial_text_len + 1);
     return data;
 }