Fix some allocation size calculation errors that would cause pgbench

to fail with large test scripts.
This commit is contained in:
Tom Lane 2005-10-29 19:38:07 +00:00
parent 4a57a4575a
commit 9ee0a7df50
1 changed files with 9 additions and 9 deletions

View File

@ -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");