(linenum→info "unix/slp.c:2238")

glibc/2.7/malloc/tst-mcheck.c

    1: /* Copyright (C) 2005 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3:    Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
    4: 
    5:    The GNU C Library is free software; you can redistribute it and/or
    6:    modify it under the terms of the GNU Lesser General Public
    7:    License as published by the Free Software Foundation; either
    8:    version 2.1 of the License, or (at your option) any later version.
    9: 
   10:    The GNU C Library is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13:    Lesser General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU Lesser General Public
   16:    License along with the GNU C Library; if not, write to the Free
   17:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18:    02111-1307 USA.  */
   19: 
   20: #include <errno.h>
   21: #include <stdio.h>
   22: #include <stdlib.h>
   23: 
   24: static int errors = 0;
   25: 
   26: static void
   27: merror (const char *msg)
   28: {
   29:   ++errors;
   30:   printf ("Error: %s\n", msg);
   31: }
   32: 
   33: int
   34: main (void)
   35: {
   36:   void *p, *q;
   37: 
   38:   errno = 0;
   39: 
   40:   p = malloc (-1);
   41: 
   42:   if (p != NULL)
   43:     merror ("malloc (-1) succeeded.");
   44:   else if (errno != ENOMEM)
   45:     merror ("errno is not set correctly.");
   46: 
   47:   p = malloc (10);
   48:   if (p == NULL)
   49:     merror ("malloc (10) failed.");
   50: 
   51:   p = realloc (p, 0);
   52:   if (p != NULL)
   53:     merror ("realloc (p, 0) failed.");
   54: 
   55:   p = malloc (0);
   56:   if (p == NULL)
   57:     merror ("malloc (0) failed.");
   58: 
   59:   p = realloc (p, 0);
   60:   if (p != NULL)
   61:     merror ("realloc (p, 0) failed.");
   62: 
   63:   q = malloc (256);
   64:   if (q == NULL)
   65:     merror ("malloc (256) failed.");
   66: 
   67:   p = malloc (512);
   68:   if (p == NULL)
   69:     merror ("malloc (512) failed.");
   70: 
   71:   if (realloc (p, -256) != NULL)
   72:     merror ("realloc (p, -256) succeeded.");
   73:   else if (errno != ENOMEM)
   74:     merror ("errno is not set correctly.");
   75: 
   76:   free (p);
   77: 
   78:   p = malloc (512);
   79:   if (p == NULL)
   80:     merror ("malloc (512) failed.");
   81: 
   82:   if (realloc (p, -1) != NULL)
   83:     merror ("realloc (p, -1) succeeded.");
   84:   else if (errno != ENOMEM)
   85:     merror ("errno is not set correctly.");
   86: 
   87:   free (p);
   88:   free (q);
   89: 
   90:   return errors != 0;
   91: }
Syntax (Markdown)