diff --git a/telnet/utilities.c b/telnet/utilities.c index 0bb0eab..d89ca37 100644 --- a/telnet/utilities.c +++ b/telnet/utilities.c @@ -748,6 +748,7 @@ printsub(char direction, unsigned char *pointer, int length) env_common: { register int noquote = 2; + char* msg; #if defined(ENV_HACK) && defined(OLD_ENVIRON) extern int old_env_var, old_env_value; #endif @@ -758,14 +759,24 @@ printsub(char direction, unsigned char *pointer, int length) /* case NEW_ENV_OVAR: */ if (pointer[0] == TELOPT_OLD_ENVIRON) { # ifdef ENV_HACK - if (old_env_var == OLD_ENV_VALUE) - fprintf(NetTrace, "\" (VALUE) " + noquote); - else + if (old_env_var == OLD_ENV_VALUE) { + msg = "\" (VALUE) "; + fprintf(NetTrace, "%s", msg + noquote); + } + else { # endif - fprintf(NetTrace, "\" VAR " + noquote); + msg = "\" VAR "; + fprintf(NetTrace, "%s", msg + noquote); +# ifdef ENV_HACK + } +#endif /*ENV_HACK*/ } else #endif /* OLD_ENVIRON */ - fprintf(NetTrace, "\" VALUE " + noquote); + msg = "\" VALUE "; + fprintf(NetTrace, "%s", msg + noquote); +#ifdef OLD_ENVIRON + } +#endif /* OLD_ENVIRON */ noquote = 2; break; @@ -774,24 +785,36 @@ printsub(char direction, unsigned char *pointer, int length) /* case OLD_ENV_VALUE: */ if (pointer[0] == TELOPT_OLD_ENVIRON) { # ifdef ENV_HACK - if (old_env_value == OLD_ENV_VAR) - fprintf(NetTrace, "\" (VAR) " + noquote); - else + if (old_env_value == OLD_ENV_VAR) { + msg = "\" (VAR) "; + fprintf(NetTrace, "%s", msg + noquote); + } + else { # endif - fprintf(NetTrace, "\" VALUE " + noquote); - } else + msg = "\" VALUE "; + fprintf(NetTrace, "%s", msg + noquote); +# ifdef ENV_HACK + } +# endif + } else { #endif /* OLD_ENVIRON */ - fprintf(NetTrace, "\" VAR " + noquote); + msg = "\" VAR "; + fprintf(NetTrace, "%s", msg + noquote); +#ifdef OLD_ENVIRON + } +#endif noquote = 2; break; case ENV_ESC: - fprintf(NetTrace, "\" ESC " + noquote); + msg = "\" ESC "; + fprintf(NetTrace, "%s", msg + noquote); noquote = 2; break; case ENV_USERVAR: - fprintf(NetTrace, "\" USERVAR " + noquote); + msg = "\" USERVAR "; + fprintf(NetTrace, "%s", msg + noquote); noquote = 2; break; diff --git a/telnetd/utility.c b/telnetd/utility.c index 4a438be..82edee5 100644 --- a/telnetd/utility.c +++ b/telnetd/utility.c @@ -969,22 +969,26 @@ printsub(char direction, unsigned char *pointer, int length) env_common: { register int noquote = 2; + char* msg; for (i = 2; i < length; i++ ) { switch (pointer[i]) { case ENV_VAR: if (pointer[1] == TELQUAL_SEND) goto def_case; - netoprintf("\" VAR " + noquote); + msg = "\" VAR "; + netoprintf("%s", msg + noquote); noquote = 2; break; case ENV_VALUE: - netoprintf("\" VALUE " + noquote); + msg = "\" VALUE "; + netoprintf("%s", msg + noquote); noquote = 2; break; case ENV_ESC: - netoprintf("\" ESC " + noquote); + msg = "\" ESC "; + netoprintf("%s", msg + noquote); noquote = 2; break;