mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: akpm@osdl.org, linux-kernel@vger.kernel.org
Cc: bastian@suse.de
Subject: [PATCH] Add prctl to modify current->comm
Date: Tue, 7 Sep 2004 16:27:53 +0200	[thread overview]
Message-ID: <20040907142753.GA20981@wotan.suse.de> (raw)


This patch adds a prctl to modify current->comm as shown in /proc.
This feature was requested by KDE developers. In KDE most programs
are started by forking from a kdeinit program that already has the 
libraries loaded and some other state. 

Problem is to give these forked programs the proper name.
It already writes the command line in the environment (as seen in ps),
but top uses a different field in /proc/pid/status that reports
current->comm. And that was always "kdeinit" instead of the
real command name. So you ended up with lots of kdeinits
in your top listing, which was not very useful.

This patch adds a new prctl PR_SET_NAME to allow a program to change its 
comm field. 

I considered the potential security issues of a program obscuring
itself with this interface, but I don't think it matters much
because a program can already obscure itself when the admin uses
ps instead of top. In case of a KDE desktop calling everything
kdeinit is much more obfuscation than the alternative.

diff -u linux-2.6.8-5/kernel/sys.c-o linux-2.6.8-5/kernel/sys.c
--- linux-2.6.8-5/kernel/sys.c-o	2004-08-14 07:36:16.000000000 +0200
+++ linux-2.6.8-5/kernel/sys.c	2004-09-07 11:34:07.000000000 +0200
@@ -1660,6 +1660,13 @@
 			}
 			current->keep_capabilities = arg2;
 			break;
+		case PR_SET_NAME: {
+			struct task_struct *me = current;
+			me->comm[sizeof(me->comm)-1] = 0;
+			if (strncpy_from_user(me->comm, (char *)arg2, sizeof(me->comm)-1) < 0)
+				return -EFAULT;
+			return 0;
+		}
 		default:
 			error = -EINVAL;
 			break;
diff -u linux-2.6.8-5/include/linux/prctl.h-o linux-2.6.8-5/include/linux/prctl.h
--- linux-2.6.8-5/include/linux/prctl.h-o	2004-08-14 07:37:14.000000000 +0200
+++ linux-2.6.8-5/include/linux/prctl.h	2004-09-07 11:35:02.000000000 +0200
@@ -49,5 +49,6 @@
 # define PR_TIMING_TIMESTAMP    1       /* Accurate timestamp based
                                                    process timing */
 
+#define PR_SET_NAME    15		/* Set process name. */
 
 #endif /* _LINUX_PRCTL_H */

             reply	other threads:[~2004-09-07 14:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-07 14:27 Andi Kleen [this message]
2004-09-07 17:12 ` Alan Cox
2004-09-07 21:16   ` Andi Kleen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040907142753.GA20981@wotan.suse.de \
    --to=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=bastian@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome