* David Goulet ([email protected]) wrote:
> For libustcomm, libustd, ustctl and ustd.

Even through some of these might not be strictly required, I don't think
any are on a fast path, and it is safer to zero-allocate these
structures. So I'd be tempted to pull these changes in.

Pierre-Marc, it's up to you.

Thanks,

Mathieu

> 
> Signed-off-by: David Goulet <[email protected]>
> ---
>  libustcomm/multipoll.c |    4 ++--
>  libustcomm/ustcomm.c   |   20 ++++++++++----------
>  libustd/libustd.c      |    6 +++---
>  ustctl/ustctl.c        |    2 +-
>  ustd/ustd.c            |    7 +++----
>  5 files changed, 19 insertions(+), 20 deletions(-)
> 
> diff --git a/libustcomm/multipoll.c b/libustcomm/multipoll.c
> index 1210b93..80426e3 100644
> --- a/libustcomm/multipoll.c
> +++ b/libustcomm/multipoll.c
> @@ -39,8 +39,8 @@ int multipoll_init(struct mpentries *ent)
>       ent->n_used = 0;
>       ent->n_avail = INITIAL_N_AVAIL;
>  
> -     ent->pollfds = (struct pollfd *) malloc(sizeof(struct pollfd) * 
> INITIAL_N_AVAIL);
> -     ent->extras = (struct pollfd_extra *) malloc(sizeof(struct 
> pollfd_extra) * INITIAL_N_AVAIL);
> +     ent->pollfds = (struct pollfd *) zmalloc(sizeof(struct pollfd) * 
> INITIAL_N_AVAIL);
> +     ent->extras = (struct pollfd_extra *) zmalloc(sizeof(struct 
> pollfd_extra) * INITIAL_N_AVAIL);
>  
>       return 0;
>  }
> diff --git a/libustcomm/ustcomm.c b/libustcomm/ustcomm.c
> index fe29977..f2b7a03 100644
> --- a/libustcomm/ustcomm.c
> +++ b/libustcomm/ustcomm.c
> @@ -48,7 +48,7 @@ static int mkdir_p(const char *path, mode_t mode)
>       int result;
>       mode_t old_umask;
>  
> -     tmp = malloc(strlen(path) + 1);
> +     tmp = zmalloc(strlen(path) + 1);
>       if (tmp == NULL)
>               return -1;
>  
> @@ -332,15 +332,15 @@ int ustcomm_recv_message(struct ustcomm_server *server, 
> char **msg, struct ustco
>                       n_fds++;
>               }
>  
> -             fds = (struct pollfd *) malloc(n_fds * sizeof(struct pollfd));
> +             fds = (struct pollfd *) zmalloc(n_fds * sizeof(struct pollfd));
>               if(fds == NULL) {
> -                     ERR("malloc returned NULL");
> +                     ERR("zmalloc returned NULL");
>                       return -1;
>               }
>  
> -             conn_table = (struct ustcomm_connection **) malloc(n_fds * 
> sizeof(struct ustcomm_connection *));
> +             conn_table = (struct ustcomm_connection **) zmalloc(n_fds * 
> sizeof(struct ustcomm_connection *));
>               if(conn_table == NULL) {
> -                     ERR("malloc returned NULL");
> +                     ERR("zmalloc returned NULL");
>                       retval = -1;
>                       goto free_fds_return;
>               }
> @@ -384,9 +384,9 @@ int ustcomm_recv_message(struct ustcomm_server *server, 
> char **msg, struct ustco
>                               goto free_conn_table_return;
>                       }
>  
> -                     newconn = (struct ustcomm_connection *) 
> malloc(sizeof(struct ustcomm_connection));
> +                     newconn = (struct ustcomm_connection *) 
> zmalloc(sizeof(struct ustcomm_connection));
>                       if(newconn == NULL) {
> -                             ERR("malloc returned NULL");
> +                             ERR("zmalloc returned NULL");
>                               return -1;
>                       }
>  
> @@ -886,9 +886,9 @@ static int process_mp_incoming_conn(void *priv, int fd, 
> short events)
>               return -1;
>       }
>  
> -     newconn = (struct ustcomm_connection *) malloc(sizeof(struct 
> ustcomm_connection));
> +     newconn = (struct ustcomm_connection *) zmalloc(sizeof(struct 
> ustcomm_connection));
>       if(newconn == NULL) {
> -             ERR("malloc returned NULL");
> +             ERR("zmalloc returned NULL");
>               return -1;
>       }
>  
> @@ -948,7 +948,7 @@ void ustcomm_mp_add_app_clients(struct mpentries *ent, 
> struct ustcomm_app *app,
>       multipoll_add(ent, app->server.listen_fd, POLLIN, 
> process_mp_incoming_conn, &app->server, NULL);
>  
>       list_for_each_entry(conn, &app->server.connections, list) {
> -             struct ustcomm_multipoll_conn_info *mpinfo = (struct 
> ustcomm_multipoll_conn_info *) malloc(sizeof(struct 
> ustcomm_multipoll_conn_info));
> +             struct ustcomm_multipoll_conn_info *mpinfo = (struct 
> ustcomm_multipoll_conn_info *) zmalloc(sizeof(struct 
> ustcomm_multipoll_conn_info));
>               mpinfo->conn = conn;
>               mpinfo->cb = cb;
>               multipoll_add(ent, conn->fd, POLLIN, process_mp_conn_msg, 
> mpinfo, free_ustcomm_client_poll);
> diff --git a/libustd/libustd.c b/libustd/libustd.c
> index e0d48b5..e3c2802 100644
> --- a/libustd/libustd.c
> +++ b/libustd/libustd.c
> @@ -192,7 +192,7 @@ struct buffer_info *connect_buffer(struct 
> libustd_instance *instance, pid_t pid,
>       int fd;
>       struct shmid_ds shmds;
>  
> -     buf = (struct buffer_info *) malloc(sizeof(struct buffer_info));
> +     buf = (struct buffer_info *) zmalloc(sizeof(struct buffer_info));
>       if(buf == NULL) {
>               ERR("add_buffer: insufficient memory");
>               return NULL;
> @@ -488,7 +488,7 @@ int start_consuming_buffer(
>  
>       DBG("beginning of start_consuming_buffer: args: pid %d bufname %s", 
> pid, bufname);
>  
> -     args = (struct consumer_thread_args *) malloc(sizeof(struct 
> consumer_thread_args));
> +     args = (struct consumer_thread_args *) zmalloc(sizeof(struct 
> consumer_thread_args));
>  
>       args->pid = pid;
>       args->bufname = strdup(bufname);
> @@ -640,7 +640,7 @@ struct libustd_instance *libustd_new_instance(
>       struct libustd_callbacks *callbacks, char *sock_path)
>  {
>       struct libustd_instance *instance =
> -             malloc(sizeof(struct libustd_instance));
> +             zmalloc(sizeof(struct libustd_instance));
>       if(!instance)
>               return NULL;
>  
> diff --git a/ustctl/ustctl.c b/ustctl/ustctl.c
> index b9f2dce..b38d58a 100644
> --- a/ustctl/ustctl.c
> +++ b/ustctl/ustctl.c
> @@ -148,7 +148,7 @@ int parse_opts_long(int argc, char **argv, struct 
> ust_opts *opts)
>       if (argc - optind > 0 && opts->cmd != GET_ONLINE_PIDS) {
>               int i;
>               int pididx=0;
> -             opts->pids = malloc((argc-optind+1) * sizeof(pid_t));
> +             opts->pids = zmalloc((argc-optind+1) * sizeof(pid_t));
>  
>               for(i=optind; i<argc; i++) {
>                       /* don't take any chances, use a long long */
> diff --git a/ustd/ustd.c b/ustd/ustd.c
> index cca9520..bb64f70 100644
> --- a/ustd/ustd.c
> +++ b/ustd/ustd.c
> @@ -150,8 +150,7 @@ int on_read_partial_subbuffer(struct libustd_callbacks 
> *data, struct buffer_info
>       /* pad with empty bytes */
>       pad_size = PAGE_ALIGN(valid_length)-valid_length;
>       if(pad_size) {
> -             tmp = malloc(pad_size);
> -             memset(tmp, 0, pad_size);
> +             tmp = zmalloc(pad_size);
>               result = patient_write(buf_local->file_fd, tmp, pad_size);
>               if(result == -1) {
>                       ERR("Error writing to buffer file");
> @@ -168,7 +167,7 @@ int on_open_buffer(struct libustd_callbacks *data, struct 
> buffer_info *buf)
>       int result;
>       int fd;
>       struct buffer_info_local *buf_local =
> -             malloc(sizeof(struct buffer_info_local));
> +             zmalloc(sizeof(struct buffer_info_local));
>  
>       if(!buf_local) {
>               ERR("could not allocate buffer_info_local struct");
> @@ -233,7 +232,7 @@ int on_put_error(struct libustd_callbacks *data, struct 
> buffer_info *buf)
>  struct libustd_callbacks *new_callbacks()
>  {
>       struct libustd_callbacks *callbacks =
> -             malloc(sizeof(struct libustd_callbacks));
> +             zmalloc(sizeof(struct libustd_callbacks));
>  
>       if(!callbacks)
>               return NULL;
> -- 
> 1.7.0.4
> 

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com

_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev

Reply via email to