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: unassig...@gcc.gnu.org

        ReportedBy: dcb...@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.

Reply via email to