From 0efb4041529acfb0f2ebfeb4138eb87cb2fc6a69 Mon Sep 17 00:00:00 2001 From: rliebscher Date: Sat, 17 Dec 2011 13:45:54 +0000 Subject: [PATCH] patch #7667: Minor memory handling fixes git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1020 81a1dc3b-b13d-400b-aceb-764788c761c2 --- config_gram.y | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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,