Blame src/regression/flockfile-list.c
|
Szabolcs Nagy |
50ab48 |
// commit: 3e936ce81bbbcc968f576aedbd5203621839f152 2014-09-19
|
|
Szabolcs Nagy |
50ab48 |
// flockfile linked list handling was broken
|
|
Szabolcs Nagy |
50ab48 |
#include <errno.h>
|
|
Szabolcs Nagy |
50ab48 |
#include <stdio.h>
|
|
Szabolcs Nagy |
50ab48 |
#include <stdlib.h>
|
|
Szabolcs Nagy |
50ab48 |
#include <string.h>
|
|
Szabolcs Nagy |
50ab48 |
#include "test.h"
|
|
Szabolcs Nagy |
50ab48 |
|
|
Szabolcs Nagy |
50ab48 |
int main()
|
|
Szabolcs Nagy |
50ab48 |
{
|
|
Szabolcs Nagy |
50ab48 |
FILE *f = tmpfile();
|
|
Szabolcs Nagy |
50ab48 |
FILE *g = tmpfile();
|
|
Szabolcs Nagy |
50ab48 |
flockfile(g);
|
|
Szabolcs Nagy |
50ab48 |
flockfile(f);
|
|
Szabolcs Nagy |
50ab48 |
funlockfile(g);
|
|
Szabolcs Nagy |
50ab48 |
fclose(g);
|
|
Szabolcs Nagy |
50ab48 |
|
|
Szabolcs Nagy |
50ab48 |
/* fill memory */
|
|
Szabolcs Nagy |
50ab48 |
if (t_vmfill(0,0,0) < 0)
|
|
Szabolcs Nagy |
50ab48 |
t_error("vmfill failed: %s\n", strerror(errno));
|
|
Szabolcs Nagy |
50ab48 |
size_t i,n;
|
|
Szabolcs Nagy |
50ab48 |
unsigned char *p;
|
|
Szabolcs Nagy |
50ab48 |
for (n = 1; n < 10000; n++) {
|
|
Szabolcs Nagy |
50ab48 |
if (!(p=malloc(n))) break;
|
|
Szabolcs Nagy |
50ab48 |
free(p);
|
|
Szabolcs Nagy |
50ab48 |
}
|
|
Szabolcs Nagy |
50ab48 |
n--;
|
|
Szabolcs Nagy |
50ab48 |
if (!(p=malloc(n))) {
|
|
Szabolcs Nagy |
50ab48 |
t_error("bad malloc fragmentation\n");
|
|
Szabolcs Nagy |
50ab48 |
return t_status;
|
|
Szabolcs Nagy |
50ab48 |
}
|
|
Szabolcs Nagy |
50ab48 |
memset(p, 0xff, n);
|
|
Szabolcs Nagy |
50ab48 |
|
|
Szabolcs Nagy |
50ab48 |
/* may corrupt memory */
|
|
Szabolcs Nagy |
50ab48 |
funlockfile(f);
|
|
Szabolcs Nagy |
50ab48 |
for (i=0; i
|
|
Szabolcs Nagy |
50ab48 |
if (p[i]!=0xff) {
|
|
Szabolcs Nagy |
50ab48 |
t_error("p[%zu] = %.2x\n", i, p[i]);
|
|
Szabolcs Nagy |
50ab48 |
}
|
|
Szabolcs Nagy |
50ab48 |
}
|
|
Szabolcs Nagy |
50ab48 |
return t_status;
|
|
Szabolcs Nagy |
50ab48 |
}
|