Re: [Patch 2/10] NFS Mount Configuration File (Vers 3)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Aug. 06, 2009, 21:41 +0300, Steve Dickson <SteveD@xxxxxxxxxx> wrote:
> commit f6f4d0b872c01eaffbcb4c3919f13237aa8678e1
> Author: Steve Dickson <steved@xxxxxxxxxx>
> Date:   Mon Mar 9 13:55:25 2009 -0400
> 
>     Taught conf_parse_line() to ignore spaces in the
>      '[section]' parsing and before the assignment statements
>     
>     Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
> 
> diff --git a/support/nfs/conffile.c b/support/nfs/conffile.c
> index c5f9fa7..5f491eb 100644
> --- a/support/nfs/conffile.c
> +++ b/support/nfs/conffile.c
> @@ -50,11 +50,6 @@
>  #include "xlog.h"
>  
>  static void conf_load_defaults (int);
> -#if 0
> -static int conf_find_trans_xf (int, char *);
> -#endif
> -
> -size_t  strlcpy(char *, const char *, size_t);
>  
>  struct conf_trans {
>  	TAILQ_ENTRY (conf_trans) link;
> @@ -219,26 +214,48 @@ conf_parse_line(int trans, char *line, size_t sz)
>  	if (*line == '#' || *line == ';')
>  		return;
>  
> +	/* Ignore blank lines */
> +	if (*line == '\0')
> +		return;
> +
> +	/* Strip off any leading blanks */
> +	while (isblank(*line)) 
> +		line++;
> +

Why not do this before looking for '#' or ';'?

Benny

>  	/* '[section]' parsing...  */
>  	if (*line == '[') {
> -		for (i = 1; i < sz; i++)
> -			if (line[i] == ']')
> +		line++;
> +		/* Strip off any blanks after '[' */
> +		while (isblank(*line)) 
> +			line++;
> +
> +		for (i = 0; i < sz; i++) {
> +			if (line[i] == ']') {
>  				break;
> +			}
> +		}
>  		if (section)
> -			free (section);
> +			free(section);
>  		if (i == sz) {
>  			xlog_warn("conf_parse_line: %d:"
>   				"non-matched ']', ignoring until next section", ln);
>  			section = 0;
>  			return;
>  		}
> +		/* Strip off any blanks before ']' */
> +		val = line;
> +		while (*val && !isblank(*val)) 
> +			val++, j++;
> +		if (*val)
> +			i = j;
> +
>  		section = malloc(i);
>  		if (!section) {
>  			xlog_warn("conf_parse_line: %d: malloc (%lu) failed", ln,
>  						(unsigned long)i);
>  			return;
>  		}
> -		strlcpy(section, line + 1, i);
> +		strncpy(section, line, i);
>  		return;
>  	}
>  
> 
> _______________________________________________
> NFSv4 mailing list
> NFSv4@xxxxxxxxxxxxx
> http://linux-nfs.org/cgi-bin/mailman/listinfo/nfsv4
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux