common/xyzModem.c: Do not use hard-coded address for debug buffer
authorAlexandru Gagniuc <alex.g@adaptrum.com>
Tue, 4 Apr 2017 17:42:31 +0000 (10:42 -0700)
committerTom Rini <trini@konsulko.com>
Sat, 8 Apr 2017 13:26:55 +0000 (09:26 -0400)
Under the plethora of #ifdefs, the xyzModem code hid this pearl:
static char *zm_out = (char *) 0x00380000;
This was only enabled when DEBUG is defined, so it's probably why it
went unnoticed for so long. No idea what platform had memory at that
exact location, but the this approach is extremely hacky.
Use a static buffer instead.

Signed-off-by: Alexandru Gagniuc <alex.g@adaptrum.com>
common/xyzModem.c

index 6ded958e8907663a28709ac850091ad2ff7110cc..a0c5dfeece505ad07f9973ee7706fb2451ee02b4 100644 (file)
@@ -176,16 +176,10 @@ parse_num (char *s, unsigned long *val, char **es, char *delim)
 /*
  * Note: this debug setup works by storing the strings in a fixed buffer
  */
-#define FINAL
-#ifdef FINAL
-static char *zm_out = (char *) 0x00380000;
-static char *zm_out_start = (char *) 0x00380000;
-#else
-static char zm_buf[8192];
-static char *zm_out = zm_buf;
-static char *zm_out_start = zm_buf;
+static char zm_debug_buf[8192];
+static char *zm_out = zm_debug_buf;
+static char *zm_out_start = zm_debug_buf;
 
-#endif
 static int
 zm_dprintf (char *fmt, ...)
 {