[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