[Bug c/55791] New: gcc fails to detect wrong type in sizeof in malloc

dcb314 at hotmail dot com gcc-bugzilla@gcc.gnu.org
Sat Dec 22 17:33:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55791

             Bug #: 55791
           Summary: gcc fails to detect wrong type in sizeof in malloc
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: dcb314@hotmail.com


Given the following code, culled from customer code,

# include <stdlib.h>

extern void g(char *);

void f()
{
    char *p;

    // wrong type in sizeof in malloc
    p = (char *) malloc( 10 * sizeof( char *));

    g(p);
}

gcc can't detect that the malloc line should be something closer to

    p = (char *) malloc( 10 * sizeof( char));

i.e. the type in the sizeof expression must be the same as (or 
at very least the same size as) the type of destination buffer.



More information about the Gcc-bugs mailing list