diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c
index c1b178db3b63140fdbc615d1a90ac6ace8b86197..7c28dc0881376f04ba785ff517045818cd40f55f 100644
--- a/src/server/gdb_server.c
+++ b/src/server/gdb_server.c
@@ -1611,6 +1611,9 @@ int gdb_query_packet(connection_t *connection, target_t *target, char *packet, i
 			/* a flash chip could be at the very end of the 32 bit address space, in which case
 			ram_start will be precisely 0 */
 		}
+		
+		free(banks);
+		banks = NULL;
 
 		xml_printf(&retval, &xml, &pos, &size, "</memory-map>\n");