[ltt-dev] [PATCH] Changes malloc to zmalloc

Mathieu Desnoyers compudj at krystal.dyndns.org
Tue Aug 17 17:00:17 EDT 2010


* David Goulet (david.goulet at polymtl.ca) wrote:
> For libustcomm, libustd, ustctl and ustd.
> 
> Signed-off-by: David Goulet <david.goulet at polymtl.ca>
> ---
>  libustcomm/multipoll.c |    4 ++--
>  libustcomm/ustcomm.c   |   22 +++++++++++-----------
>  libustd/libustd.c      |    6 +++---
>  ustctl/ustctl.c        |    2 +-
>  ustd/ustd.c            |    7 +++----
>  5 files changed, 20 insertions(+), 21 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..798dd4a 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;
>  
> @@ -230,7 +230,7 @@ static int recv_message_fd(int fd, char **recv_buf, int *recv_buf_size, int *rec
>  			*msg = strndup(*recv_buf, i);
>  
>  			/* Remove processed message from buffer */
> -			newbuf = (char *) malloc(*recv_buf_size - (i+1));
> +			newbuf = (char *) zmalloc(*recv_buf_size - (i+1));
>  			memcpy(newbuf, *recv_buf + (i+1), *recv_buf_size - (i+1));

Here we have a memcpy just below, so here we should probably leave a simple malloc.

The rest looks fine.

Thanks,

Mathieu

>  			free(*recv_buf);
>  			*recv_buf = newbuf;
> @@ -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
> 
> 
> _______________________________________________
> ltt-dev mailing list
> ltt-dev at lists.casi.polymtl.ca
> http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev
> 

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




More information about the lttng-dev mailing list