diff --git a/avrpart.c b/avrpart.c index acb13d5b..4ebd4eef 100644 --- a/avrpart.c +++ b/avrpart.c @@ -254,6 +254,7 @@ AVRMEM * avr_new_memtype(void) } memset(m, 0, sizeof(*m)); + m->page_size = 1; // ensure not 0 return m; } diff --git a/config_gram.y b/config_gram.y index 0b50064f..d9f661a1 100644 --- a/config_gram.y +++ b/config_gram.y @@ -1310,7 +1310,13 @@ mem_spec : K_PAGE_SIZE TKN_EQUAL TKN_NUMBER { - current_mem->page_size = $3->value.number; + int ps = $3->value.number; + if (ps <= 0) + avrdude_message(MSG_INFO, + "%s, line %d: invalid page size %d, ignored\n", + infile, lineno, ps); + else + current_mem->page_size = ps; free_token($3); } |