Fix some allocation size calculation errors that would cause pgbench
to fail with large test scripts.
This commit is contained in:
parent
4a57a4575a
commit
9ee0a7df50
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.44 2005/10/15 20:24:00 tgl Exp $
|
* $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.45 2005/10/29 19:38:07 tgl Exp $
|
||||||
*
|
*
|
||||||
* pgbench: a simple benchmark program for PostgreSQL
|
* pgbench: a simple benchmark program for PostgreSQL
|
||||||
* written by Tatsuo Ishii
|
* written by Tatsuo Ishii
|
||||||
@ -868,7 +868,7 @@ process_file(char *filename)
|
|||||||
}
|
}
|
||||||
|
|
||||||
alloc_num = COMMANDS_ALLOC_NUM;
|
alloc_num = COMMANDS_ALLOC_NUM;
|
||||||
my_commands = (Command **) malloc(sizeof(Command **) * alloc_num);
|
my_commands = (Command **) malloc(sizeof(Command *) * alloc_num);
|
||||||
if (my_commands == NULL)
|
if (my_commands == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -876,7 +876,7 @@ process_file(char *filename)
|
|||||||
fd = stdin;
|
fd = stdin;
|
||||||
else if ((fd = fopen(filename, "r")) == NULL)
|
else if ((fd = fopen(filename, "r")) == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: %s\n", strerror(errno), filename);
|
fprintf(stderr, "%s: %s\n", filename, strerror(errno));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -899,7 +899,7 @@ process_file(char *filename)
|
|||||||
if (lineno >= alloc_num)
|
if (lineno >= alloc_num)
|
||||||
{
|
{
|
||||||
alloc_num += COMMANDS_ALLOC_NUM;
|
alloc_num += COMMANDS_ALLOC_NUM;
|
||||||
my_commands = realloc(my_commands, alloc_num);
|
my_commands = realloc(my_commands, sizeof(Command *) * alloc_num);
|
||||||
if (my_commands == NULL)
|
if (my_commands == NULL)
|
||||||
{
|
{
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
@ -930,7 +930,7 @@ process_builtin(char *tb)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
alloc_num = COMMANDS_ALLOC_NUM;
|
alloc_num = COMMANDS_ALLOC_NUM;
|
||||||
my_commands = malloc(sizeof(Command **) * alloc_num);
|
my_commands = (Command **) malloc(sizeof(Command *) * alloc_num);
|
||||||
if (my_commands == NULL)
|
if (my_commands == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -965,7 +965,7 @@ process_builtin(char *tb)
|
|||||||
if (lineno >= alloc_num)
|
if (lineno >= alloc_num)
|
||||||
{
|
{
|
||||||
alloc_num += COMMANDS_ALLOC_NUM;
|
alloc_num += COMMANDS_ALLOC_NUM;
|
||||||
my_commands = realloc(my_commands, alloc_num);
|
my_commands = realloc(my_commands, sizeof(Command *) * alloc_num);
|
||||||
if (my_commands == NULL)
|
if (my_commands == NULL)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1031,7 +1031,7 @@ main(int argc, char **argv)
|
|||||||
* 2: skip update of branches and tellers */
|
* 2: skip update of branches and tellers */
|
||||||
char *filename = NULL;
|
char *filename = NULL;
|
||||||
|
|
||||||
static CState *state; /* status of clients */
|
CState *state; /* status of clients */
|
||||||
|
|
||||||
struct timeval tv1; /* start up time */
|
struct timeval tv1; /* start up time */
|
||||||
struct timeval tv2; /* after establishing all connections to the
|
struct timeval tv2; /* after establishing all connections to the
|
||||||
@ -1101,7 +1101,7 @@ main(int argc, char **argv)
|
|||||||
if (getrlimit(RLIMIT_OFILE, &rlim) == -1)
|
if (getrlimit(RLIMIT_OFILE, &rlim) == -1)
|
||||||
#endif /* RLIMIT_NOFILE */
|
#endif /* RLIMIT_NOFILE */
|
||||||
{
|
{
|
||||||
fprintf(stderr, "getrlimit failed. reason: %s\n", strerror(errno));
|
fprintf(stderr, "getrlimit failed: %s\n", strerror(errno));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (rlim.rlim_cur <= (nclients + 2))
|
if (rlim.rlim_cur <= (nclients + 2))
|
||||||
@ -1173,7 +1173,7 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
remains = nclients;
|
remains = nclients;
|
||||||
|
|
||||||
state = (CState *) malloc(sizeof(*state) * nclients);
|
state = (CState *) malloc(sizeof(CState) * nclients);
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Couldn't allocate memory for state\n");
|
fprintf(stderr, "Couldn't allocate memory for state\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user