2001-10-02 18:05:10

by Paul Larson

[permalink] [raw]
Subject: sys_personality changes


I'm curious about the purpose of the sys_personality changes that made
it into 2.4.10. In 2.4.9, it looked like this:

asmlinkage long sys_personality(unsigned long personality)
{
int ret = current->personality;
if (personality != 0xffffffff) {
set_personality(personality);
if (current->personality != personality)
ret = -EINVAL;
}
return ret;
}

Compared to your new one:

asmlinkage long
sys_personality(u_long personality)
{
if (personality == 0xffffffff)
goto ret;
set_personality(personality);
if (current->personality != personality)
return -EINVAL;
ret:
return (current->personality);
}

What was the purpose of changing the way sys_personality works? AFAIK
sys_personality is supposed to return the previous persona. Yours
returns the new persona instead.

Was this intended, or can we roll back this part of your patch?

Thanks,
Paul Larson