]> andersk Git - gssapi-openssh.git/blobdiff - openssh/openbsd-compat/setproctitle.c
merged OPENSSH_5_1P1_GSSAPI_20080730 to GPT-branch
[gssapi-openssh.git] / openssh / openbsd-compat / setproctitle.c
index b511f6649650084d12d025a0801479f9ec8835a3..2965f689e702f9545bc2401fe5add5f2bbd43405 100644 (file)
@@ -43,6 +43,8 @@
 #endif
 #include <string.h>
 
+#include <vis.h>
+
 #define SPT_NONE       0       /* don't use it at all */
 #define SPT_PSTAT      1       /* use pstat(PSTAT_SETCMD, ...) */
 #define SPT_REUSEARGV  2       /* cover argv with title information */
@@ -121,7 +123,7 @@ setproctitle(const char *fmt, ...)
 {
 #if SPT_TYPE != SPT_NONE
        va_list ap;
-       char buf[1024];
+       char buf[1024], ptitle[1024];
        size_t len;
        extern char *__progname;
 #if SPT_TYPE == SPT_PSTAT
@@ -142,14 +144,16 @@ setproctitle(const char *fmt, ...)
                        vsnprintf(buf + len, sizeof(buf) - len , fmt, ap);
        }
        va_end(ap);
+       strnvis(ptitle, buf, sizeof(ptitle),
+           VIS_CSTYLE|VIS_NL|VIS_TAB|VIS_OCTAL);
 
 #if SPT_TYPE == SPT_PSTAT
-       pst.pst_command = buf;
-       pstat(PSTAT_SETCMD, pst, strlen(buf), 0, 0);
+       pst.pst_command = ptitle;
+       pstat(PSTAT_SETCMD, pst, strlen(ptitle), 0, 0);
 #elif SPT_TYPE == SPT_REUSEARGV
 /*     debug("setproctitle: copy \"%s\" into len %d", 
            buf, argv_env_len); */
-       len = strlcpy(argv_start, buf, argv_env_len);
+       len = strlcpy(argv_start, ptitle, argv_env_len);
        for(; len < argv_env_len; len++)
                argv_start[len] = SPT_PADCHAR;
 #endif
This page took 0.108816 seconds and 4 git commands to generate.