]> andersk Git - openssh.git/commitdiff
- (djm) Force string arguments to replacement setproctitle() though
authordjm <djm>
Fri, 16 May 2008 00:01:54 +0000 (00:01 +0000)
committerdjm <djm>
Fri, 16 May 2008 00:01:54 +0000 (00:01 +0000)
   strnvis first. Ok dtucker@

ChangeLog
openbsd-compat/setproctitle.c

index c6650f18a93f1965d0855ccb974b6ef68fdb9533..a565a04b6e22edad5fbc7474ac33e3ed1bbb2b9c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 20080403
  - (djm) [openbsd-compat/bsd-poll.c] Include stdlib.h to avoid compile-
    time warnings on LynxOS. Patch from ops AT iki.fi
+ - (djm) Force string arguments to replacement setproctitle() though
+   strnvis first. Ok dtucker@
 
 20080403
  - (djm) OpenBSD CVS sync:
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.090403 seconds and 5 git commands to generate.