Re: [PATCH] kernel/capability.c get_task_comm compile error (MMOTM)

Erez Zadok
2007-11-11T17:22:21Z

In message <20071111141510.GA29126@elte.hu>, Ingo Molnar writes:
>
> * Erez Zadok <ezk@cs.sunysb.edu> wrote:
>
> > Small patch below fixes compile error.
>
> > + char name[sizeof(current->comm)];
> > warned++;
> > printk(KERN_INFO
> > "warning: process `%s' sets w/ old libcap\n",
> > - get_task_comm(current));
> > + get_task_comm(name, current));
>
> that's buggy - get_task_comm() returns void.
>
> the proper fix would be to first do a get_task_comm() then pass in
> 'name' as an argument to printk.
>
> Ingo

Ingo, I don't see how it can return NULL. This is what get_task_comm looks
like in MMOTM-2007-11-10-19-05:

char *get_task_comm(char *buf, struct task_struct *tsk)
{
/* buf must be at least sizeof(tsk->comm) in size */
task_lock(tsk);
strncpy(buf, tsk->comm, sizeof(tsk->comm));
task_unlock(tsk);
return buf;
}

The only way it'd return NULL is if a null buf was passed, in which case the
strncpy will oops first.

Erez.