[dpdk-dev] [PATCH] cfgfile: fix unitialised buffer and improve reading from nfs filesystem.

Mrzyglod, DanielX T danielx.t.mrzyglod at intel.com
Mon Jun 29 16:32:01 CEST 2015


I send v2 of this patch. 

I removed in v2 special buffer for file descriptor.
It helped when we haved unitilized buffer[256] because of diferent fgets/fread/fwrite behaviour
when the buffer was set. 

The real and only problem was uninitialized buffer[256] and this workaround IO buffer is not needed for patch.

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Daniel Mrzyglod
> Sent: Friday, June 26, 2015 10:37 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH] cfgfile: fix unitialised buffer and improve reading
> from nfs filesystem.
> 
> Nature of the problem was not initialised buffer[256] on special condition
> there were probability that program will work on unitialised data that
> could provide unexpected program behaviour.
> 
> Adding additional transparent I/O buffer for I/O operations
> improve reading on heavyloaded enviroments with NFS.
> 
> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod at intel.com>
> ---
>  lib/librte_cfgfile/rte_cfgfile.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/lib/librte_cfgfile/rte_cfgfile.c b/lib/librte_cfgfile/rte_cfgfile.c
> index b81c273..88fcb46 100644
> --- a/lib/librte_cfgfile/rte_cfgfile.c
> +++ b/lib/librte_cfgfile/rte_cfgfile.c
> @@ -93,10 +93,14 @@ rte_cfgfile_load(const char *filename, int flags)
>  	int curr_section = -1;
>  	int curr_entry = -1;
>  	char buffer[256];
> +	char f_streambuff[BUFSIZ];
>  	int lineno = 0;
>  	struct rte_cfgfile *cfg = NULL;
> +	memset(buffer, '\0', 256*sizeof(char));
> +	memset(f_streambuff, '\0', BUFSIZ);
> 
>  	FILE *f = fopen(filename, "r");
> +	setbuf(f, f_streambuff);
>  	if (f == NULL)
>  		return NULL;
> 
> --
> 2.1.0



More information about the dev mailing list