[lkml]   [2011]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] flex_array: Change behaviour on zero size allocations
    On Tue, Feb 01, 2011 at 11:24:18AM +0100, Steffen Klassert wrote:
    > Both objections are correct, I'll send an updated patch.

    I think we need to fix selinux too to get rid of the policy loading
    problem. In security/selinux/ss/policydb.c are several pieces of code
    like this one:

    p->type_val_to_struct_array = flex_array_alloc(sizeof(struct type_datum *),
    if (!p->type_val_to_struct_array)
    goto out;

    rc = flex_array_prealloc(p->type_val_to_struct_array, 0,
    p->p_types.nprim - 1, GFP_KERNEL | __GFP_ZERO);
    if (rc)
    goto out;

    If p->p_types.nprim is zero, we allocare with total_nr_elements equal
    to zerro and then we try to prealloc with p->p_types.nprim - 1.
    flex_array_prealloc interprets this as an unsigned int and fails,
    because this is bigger than total_nr_elements, which is correct I think.



     \ /
      Last update: 2011-02-01 12:05    [W:0.044 / U:38.116 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site