summaryrefslogtreecommitdiffstats
path: root/lib/setproctitle.c
diff options
context:
space:
mode:
authorKarel Zak2011-08-25 12:07:12 +0200
committerKarel Zak2011-10-26 23:17:15 +0200
commit52b7b4876c03168ab19d6f5bbd02d1aa09f100fd (patch)
tree13550e255d904825abdafbabe4df3beac468314a /lib/setproctitle.c
parentlogin: remove PAM_FAIL_CHECK and PAM_END macros (diff)
downloadkernel-qcow2-util-linux-52b7b4876c03168ab19d6f5bbd02d1aa09f100fd.tar.gz
kernel-qcow2-util-linux-52b7b4876c03168ab19d6f5bbd02d1aa09f100fd.tar.xz
kernel-qcow2-util-linux-52b7b4876c03168ab19d6f5bbd02d1aa09f100fd.zip
lib: cleanup setproctitle.c
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'lib/setproctitle.c')
-rw-r--r--lib/setproctitle.c75
1 files changed, 20 insertions, 55 deletions
diff --git a/lib/setproctitle.c b/lib/setproctitle.c
index 319bc6a9f..4bcf8c8a9 100644
--- a/lib/setproctitle.c
+++ b/lib/setproctitle.c
@@ -1,36 +1,26 @@
-/* proctitle code - we know this to work only on linux... */
-
/*
-** SETPROCTITLE -- set process title for ps (from sendmail)
-**
-** Parameters:
-** fmt -- a printf style format string.
-**
-** Returns:
-** none.
-**
-** Side Effects:
-** Clobbers argv of our main procedure so ps(1) will
-** display the title.
-*/
-
+ * set process title for ps (from sendmail)
+ *
+ * Clobbers argv of our main procedure so ps(1) will display the title.
+ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
+
#include "setproctitle.h"
#ifndef SPT_BUFSIZE
-#define SPT_BUFSIZE 2048
+# define SPT_BUFSIZE 2048
#endif
-extern char** environ;
+extern char **environ;
-static char** argv0;
+static char **argv0;
static int argv_lth;
-void
-initproctitle (int argc, char **argv) {
+void initproctitle (int argc, char **argv)
+{
int i;
char **envp = environ;
@@ -42,9 +32,11 @@ initproctitle (int argc, char **argv) {
*/
for (i = 0; envp[i] != NULL; i++)
continue;
+
environ = (char **) malloc(sizeof(char *) * (i + 1));
if (environ == NULL)
return;
+
for (i = 0; envp[i] != NULL; i++)
if ((environ[i] = strdup(envp[i])) == NULL)
return;
@@ -55,38 +47,12 @@ initproctitle (int argc, char **argv) {
argv_lth = envp[i-1] + strlen(envp[i-1]) - argv0[0];
else
argv_lth = argv0[argc-1] + strlen(argv0[argc-1]) - argv0[0];
-}
-
-#if 0
-/* Nice code, but many places do not know about vsnprintf ... */
-void
-setproctitle (const char *fmt,...) {
- int i;
- char buf[SPT_BUFSIZE];
- va_list ap;
-
- if (!argv0)
- return;
-
- va_start(ap, fmt);
- (void) vsnprintf(buf, SPT_BUFSIZE, fmt, ap);
- va_end(ap);
-
- i = strlen (buf);
- if (i > argv_lth - 2) {
- i = argv_lth - 2;
- buf[i] = '\0';
- }
- memset(argv0[0], '\0', argv_lth); /* clear the memory area */
- (void) strcpy (argv0[0], buf);
-
- argv0[1] = NULL;
}
-#else
-void
-setproctitle (const char *prog, const char *txt) {
- int i;
- char buf[SPT_BUFSIZE];
+
+void setproctitle (const char *prog, const char *txt)
+{
+ int i;
+ char buf[SPT_BUFSIZE];
if (!argv0)
return;
@@ -94,16 +60,15 @@ setproctitle (const char *prog, const char *txt) {
if (strlen(prog) + strlen(txt) + 5 > SPT_BUFSIZE)
return;
- (void) sprintf(buf, "%s -- %s", prog, txt);
+ sprintf(buf, "%s -- %s", prog, txt);
- i = strlen (buf);
+ i = strlen(buf);
if (i > argv_lth - 2) {
i = argv_lth - 2;
buf[i] = '\0';
}
memset(argv0[0], '\0', argv_lth); /* clear the memory area */
- (void) strcpy (argv0[0], buf);
+ strcpy(argv0[0], buf);
argv0[1] = NULL;
}
-#endif