From e332ecf0b422e2925f40387f42ea966175bac465 Mon Sep 17 00:00:00 2001 From: Stefan Rueger Date: Mon, 15 Aug 2022 14:25:58 +0100 Subject: [PATCH] Change array for copy mem->desc to const char * in term.c --- src/libavrdude.h | 1 - src/term.c | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/libavrdude.h b/src/libavrdude.h index 460f66fd..4e22c5ed 100644 --- a/src/libavrdude.h +++ b/src/libavrdude.h @@ -283,7 +283,6 @@ typedef struct avrpart { int lineno; /* config file line number */ } AVRPART; -#define AVR_MEMDESCLEN 64 typedef struct avrmem { const char *desc; /* memory description ("flash", "eeprom", etc) */ LISTID comments; // Used by developer options -p*/[ASsr...] diff --git a/src/term.c b/src/term.c index 839e5608..512e5a3c 100644 --- a/src/term.c +++ b/src/term.c @@ -252,7 +252,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, } enum { read_size = 256 }; - static char prevmem[AVR_MEMDESCLEN] = {0x00}; + static const char *prevmem = ""; char * memtype = argv[1]; AVRMEM * mem = avr_locate_mem(p, memtype); if (mem == NULL) { @@ -282,7 +282,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, // Get no. bytes to read if present static int len = read_size; if (argc >= 3) { - memset(prevmem, 0x00, sizeof(prevmem)); + prevmem = cache_string(""); if (strcmp(argv[argc - 1], "...") == 0) { if (argc == 3) addr = 0; @@ -303,8 +303,7 @@ static int cmd_dump(PROGRAMMER * pgm, struct avrpart * p, if (strncmp(prevmem, memtype, strlen(memtype)) != 0) { addr = 0; len = read_size; - strncpy(prevmem, memtype, sizeof(prevmem) - 1); - prevmem[sizeof(prevmem) - 1] = 0; + prevmem = cache_string(mem->desc); } if (addr >= maxsize) addr = 0; // Wrap around