File: realloc2.c

package info (click to toggle)
valgrind 1%3A3.14.0-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 156,980 kB
  • sloc: ansic: 728,128; exp: 26,134; xml: 22,268; cpp: 7,638; asm: 7,312; makefile: 6,102; perl: 5,910; sh: 5,717
file content (21 lines) | stat: -rw-r--r-- 472 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* This test demonstrated an obscure bug in malloclists handling caused by
   multiple blocks hashing to the same list and one being overwritten at
   realloc time due to bad ordering of the things happening.  Now runs
   without error. */

#include <stdlib.h>
#include <stdio.h>

int main ( void )
{
  char* p;
  int i;
  for (i = 0; i < 10000; i++) {
    p = malloc(10 + 10 * (i % 100));
    p = realloc(p, 500);
    p = realloc(p, 600);
    free(p);
  }
  return 0;
}