* 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
