Re: [PATCH 1/2] devcgroup: always show unsigned major/minor num

From: Li Zefan
Date: Mon Jul 07 2008 - 21:30:00 EST


Paul Menage wrote:
> On Fri, Jul 4, 2008 at 10:39 PM, Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:
>> # echo "b $((0x7fffffff)):$((0x80000000)) rwm" > devices.allow
>> # cat devices.list
>> b 214748364:-21474836 rwm
>>
>> though a major/minor number of 0x800000000 is meaningless, we
>> should not cast it to a negative value.
>>
>> Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>
>> ---
>> security/device_cgroup.c | 4 ++--
>> 1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/security/device_cgroup.c b/security/device_cgroup.c
>> index fd764a0..1e2e28a 100644
>> --- a/security/device_cgroup.c
>> +++ b/security/device_cgroup.c
>> @@ -222,7 +222,7 @@ static void devcgroup_destroy(struct cgroup_subsys *ss,
>> #define DEVCG_DENY 2
>> #define DEVCG_LIST 3
>>
>> -#define MAJMINLEN 10
>> +#define MAJMINLEN 13
>> #define ACCLEN 4
>>
>> static void set_access(char *acc, short access)
>> @@ -254,7 +254,7 @@ static void set_majmin(char *str, unsigned m)
>> if (m == ~0)
>> sprintf(str, "*");
>
> Can't this just be strcat(str, "*")?
>

No, but it can be strcpy(str, "*").

>> else
>> - snprintf(str, MAJMINLEN, "%d", m);
>> + snprintf(str, MAJMINLEN, "%u", m);
>
> I'm not sure that using snprintf() helps here over just sprintf() -
> we're not actually basing it on the available space in the string,
> we're just assuming there's enough space.
>

Agreed.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/