From cb5b26bcb40220199ef31a469b6eee7cb4cc4822 Mon Sep 17 00:00:00 2001 From: "roberto@djangocloud" Date: Wed, 19 Oct 2011 14:26:07 +1000 Subject: [PATCH] another bunch of procname fixes --- utils.c | 3 +++ uwsgi.c | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/utils.c b/utils.c index c0a31dd0..f2972e2c 100644 --- a/utils.c +++ b/utils.c @@ -3224,14 +3224,17 @@ void uwsgi_set_processname(char *name) { if (uwsgi.procname_prefix) { amount += strlen(uwsgi.procname_prefix); + if ((int)amount > uwsgi.max_procname-1) return; strncat(uwsgi.orig_argv[0], uwsgi.procname_prefix, uwsgi.max_procname-(amount+1)); } amount += strlen(name); + if ((int)amount > uwsgi.max_procname-1) return; strncat(uwsgi.orig_argv[0], name, (uwsgi.max_procname-amount+1)); if (uwsgi.procname_append) { amount += strlen(uwsgi.procname_append); + if ((int)amount > uwsgi.max_procname-1) return; strncat(uwsgi.orig_argv[0], uwsgi.procname_append, uwsgi.max_procname-(amount+1)); } diff --git a/uwsgi.c b/uwsgi.c index 7ef2d2f4..5afff20e 100644 --- a/uwsgi.c +++ b/uwsgi.c @@ -879,15 +879,19 @@ void fixup_argv_and_environ(int argc, char **argv, char **environ) { uwsgi.max_procname++; for (i = 0; environ[i] != NULL; i++) { - if ((environ[0] + uwsgi.max_procname + 1) == environ[i]) { + // useless + //if ((environ[0] + uwsgi.max_procname + 1) == environ[i]) { uwsgi.max_procname += strlen(environ[i]) + 1; - } + //} env_count++; } uwsgi.environ = uwsgi_malloc(sizeof(char *) * env_count); for(i=0;i