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

glibc/2.7/malloc/tst-malloc.c

    1: /* Copyright (C) 1999 Free Software Foundation, Inc.
    2:    This file is part of the GNU C Library.
    3:    Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1999.
    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 <malloc.h>
   22: #include <stdio.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:   int save;
   38: 
   39:   errno = 0;
   40: 
   41:   p = malloc (-1);
   42:   save = errno;
   43: 
   44:   if (p != NULL)
   45:     merror ("malloc (-1) succeeded.");
   46: 
   47:   if (p == NULL && save != ENOMEM)
   48:     merror ("errno is not set correctly");
   49: 
   50:   p = malloc (10);
   51:   if (p == NULL)
   52:     merror ("malloc (10) failed.");
   53: 
   54:   /* realloc (p, 0) == free (p).  */
   55:   p = realloc (p, 0);
   56:   if (p != NULL)
   57:     merror ("realloc (p, 0) failed.");
   58: 
   59:   p = malloc (0);
   60:   if (p == NULL)
   61:     merror ("malloc (0) failed.");
   62: 
   63:   p = realloc (p, 0);
   64:   if (p != NULL)
   65:     merror ("realloc (p, 0) failed.");
   66: 
   67:   p = malloc (513 * 1024);
   68:   if (p == NULL)
   69:     merror ("malloc (513K) failed.");
   70: 
   71:   q = malloc (-512 * 1024);
   72:   if (q != NULL)
   73:     merror ("malloc (-512K) succeeded.");
   74: 
   75:   free (p);
   76: 
   77:   return errors != 0;
   78: }
Syntax (Markdown)