[LLVMbugs] [Bug 14526] New: freebsd kernel malloc with M_ZERO

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Dec 6 11:54:11 PST 2012


http://llvm.org/bugs/show_bug.cgi?id=14526

             Bug #: 14526
           Summary: freebsd kernel malloc with M_ZERO
           Product: clang
           Version: 3.1
          Platform: PC
        OS/Version: FreeBSD
            Status: NEW
          Severity: normal
          Priority: P
         Component: Static Analyzer
        AssignedTo: kremenek at apple.com
        ReportedBy: shivaram.u at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


The FreeBSD kernel malloc takes an additional parameter M_ZERO which zeros the
memory on successful allocation. But clang isn't aware of this. For example the
below test case 

struct test {
};

#define M_ZERO  1
extern void *malloc(int size, int flags);

static void*
zalloc(int size)
{
        return malloc(size, M_ZERO);
}

void bar(int count)
{
        struct test **testlist, *test;
        int i;

        testlist = zalloc(count);
        if (!testlist)
                return;

        for (i = 0; i < count; i++) {
                test = testlist[i];
                foo(test);
        }
        free(testlist);
}

Results in

zalloc.c:24:8: warning: Assigned value is garbage or undefined
                test = testlist[i];
                     ^ ~~~~~~~~~~~
1 warning generated.

NOTE: Built with -fno-builtin passed to gcc as would be the case with the
kernel/kernel module build

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list