Make allocations based on var size, not struct size - it's safer
This commit is contained in:
@@ -64,7 +64,7 @@ int main(int count, char *strings[])
|
||||
}
|
||||
printf("Connected with %s encryption\n", SSL_get_cipher(ssl));
|
||||
show_certs(ssl);
|
||||
if (!(args = (struct job_args*)calloc(1, sizeof(struct job_args) * MAX_AGENT_JOBS))) {
|
||||
if (!(args = calloc(1, sizeof(*args) * MAX_AGENT_JOBS))) {
|
||||
fprintf( stderr,
|
||||
"Failed to calloc() %d bytes for job_args! Exiting...\n",
|
||||
(int)sizeof(struct job_args) * MAX_AGENT_JOBS );
|
||||
@@ -74,7 +74,7 @@ int main(int count, char *strings[])
|
||||
SSL_CTX_free(ctx);
|
||||
_exit(EXIT_FAILURE);
|
||||
}
|
||||
if (!(job_thread = (pthread_t*)calloc(1, sizeof(pthread_t) * MAX_AGENT_JOBS))) {
|
||||
if (!(job_thread = calloc(1, sizeof(*job_thread) * MAX_AGENT_JOBS))) {
|
||||
fprintf( stderr,
|
||||
"Failed to calloc() %d bytes for job_threads! Exiting...\n",
|
||||
(int)sizeof(pthread_t) * MAX_AGENT_JOBS );
|
||||
|
||||
@@ -110,10 +110,9 @@ void *agent_pool(void *args)
|
||||
struct pool_data *pool = args;
|
||||
pthread_mutex_t mutex;
|
||||
pthread_attr_t attr;
|
||||
pthread_t *agent_thread =
|
||||
(pthread_t *)malloc(pool->size * sizeof(pthread_t));
|
||||
pthread_t *agent_thread = malloc(pool->size * sizeof(*agent_thread));
|
||||
struct agent_args *agent_struct =
|
||||
malloc(pool->size * sizeof(struct agent_args));
|
||||
malloc(pool->size * sizeof(*agent_struct));
|
||||
int i;
|
||||
|
||||
memset(agent_thread, 0, sizeof(pthread_t) * pool->size);
|
||||
|
||||
@@ -85,9 +85,9 @@ void *client_pool(void *args)
|
||||
struct pool_data *pool = args;
|
||||
pthread_mutex_t mutex;
|
||||
pthread_attr_t attr;
|
||||
pthread_t *client_thread = (pthread_t *)malloc(pool->size * sizeof(pthread_t));
|
||||
pthread_t *client_thread = malloc(pool->size * sizeof(*client_thread));
|
||||
struct client_args *client_struct =
|
||||
(struct client_args *)malloc(pool->size * sizeof(struct client_args));
|
||||
malloc(pool->size * sizeof(*client_struct));
|
||||
int i;
|
||||
|
||||
memset(client_thread, 0, sizeof(pthread_t) * pool->size);
|
||||
|
||||
@@ -12,7 +12,7 @@ int start_msg_queue(void)
|
||||
|
||||
for (i = 0; i < total_queues; i++) {
|
||||
if (slot[i] == NULL) {
|
||||
slot[i] = (struct msg_t *)calloc(100, sizeof(struct msg_t));
|
||||
slot[i] = calloc(100, sizeof(**slot));
|
||||
if (slot[i] == NULL)
|
||||
return -1;
|
||||
return i;
|
||||
@@ -28,7 +28,7 @@ void free_queue(int id)
|
||||
|
||||
int start_job_queue(int poolsize)
|
||||
{
|
||||
slot = (struct msg_t **)calloc(poolsize, sizeof(struct msg_t *));
|
||||
slot = calloc(poolsize, sizeof(*slot));
|
||||
if (slot == NULL)
|
||||
return -1;
|
||||
total_queues = poolsize;
|
||||
|
||||
Reference in New Issue
Block a user