diff --git a/config_gram.y b/config_gram.y index c676c828..f0d2cf8d 100644 --- a/config_gram.y +++ b/config_gram.y @@ -636,12 +636,14 @@ prog_parm : K_USBVID TKN_EQUAL TKN_NUMBER { { current_prog->usbvid = $3->value.number; + free_token($3); } } | K_USBPID TKN_EQUAL TKN_NUMBER { { current_prog->usbpid = $3->value.number; + free_token($3); } } | @@ -672,6 +674,7 @@ prog_parm : K_BAUDRATE TKN_EQUAL TKN_NUMBER { { current_prog->baudrate = $3->value.number; + free_token($3); } } | @@ -1292,7 +1295,8 @@ part_parm : K_MEMORY TKN_STRING { current_mem = avr_new_memtype(); - strcpy(current_mem->desc, strdup($2->value.string)); + strncpy(current_mem->desc, $2->value.string, AVR_MEMDESCLEN); + current_mem->desc[AVR_MEMDESCLEN-1] = 0; free_token($2); } mem_specs @@ -1458,6 +1462,7 @@ static int assign_pin(int pinno, TOKEN * v, int invert) int value; value = v->value.number; + free_token(v); if ((value <= 0) || (value >= 18)) { fprintf(stderr,