From pete@port4.altadena.net  Sun Jun 21 02:50:07 2009
Return-Path: <pete@port4.altadena.net>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 526581065677
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 21 Jun 2009 02:50:07 +0000 (UTC)
	(envelope-from pete@port4.altadena.net)
Received: from kestrel.altadena.net (kestrel.altadena.net [207.136.131.34])
	by mx1.freebsd.org (Postfix) with ESMTP id 2AD498FC16
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 21 Jun 2009 02:50:06 +0000 (UTC)
	(envelope-from pete@port4.altadena.net)
Received: from gate.east.altadena.net ([173.10.157.233] helo=port4.altadena.net)
	by kestrel.altadena.net with esmtps (TLSv1:AES256-SHA:256)
	(Exim 4.69)
	(envelope-from <pete@port4.altadena.net>)
	id 1MIClK-000Pyk-8N
	for FreeBSD-gnats-submit@freebsd.org; Sat, 20 Jun 2009 19:26:30 -0700
Received: from port4.altadena.net (localhost [127.0.0.1])
	by port4.altadena.net (8.14.3/8.14.3) with ESMTP id n5L2C6oD001065
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 20 Jun 2009 22:12:06 -0400 (EDT)
	(envelope-from pete@port4.altadena.net)
Received: (from pete@localhost)
	by port4.altadena.net (8.14.3/8.14.3/Submit) id n5L2C6KG001064;
	Sat, 20 Jun 2009 22:12:06 -0400 (EDT)
	(envelope-from pete)
Message-Id: <200906210212.n5L2C6KG001064@port4.altadena.net>
Date: Sat, 20 Jun 2009 22:12:06 -0400 (EDT)
From: Pete Carah <pete@altadena.net>
Reply-To: Pete Carah <pete@altadena.net>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: Geom_linux_lvm misses newer fedora defaults
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         135874
>Category:       kern
>Synopsis:       [geom] [patch] geom_linux_lvm misses newer fedora defaults
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-geom
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jun 21 03:00:17 UTC 2009
>Closed-Date:    Wed Jul 22 18:05:34 UTC 2009
>Last-Modified:  Wed Jul 22 18:05:34 UTC 2009
>Originator:     Pete Carah
>Release:        FreeBSD 7.2-STABLE amd64
>Organization:
Altadena Internet
>Environment:
System: FreeBSD port4.altadena.net 7.2-STABLE FreeBSD 7.2-STABLE #2 r194560M: Sat Jun 20 21:50:58 EDT 2009 pete@port4.altadena.net:/usr/obj/usr/src/sys/PORT47 amd64


>Description:
Geom doesn't derive the correct name for default logical volumes
in the default fedora 11 layout, which are named lv_root and lv_swap.  The
problem is that isalpha doesn't include underscore.
>How-To-Repeat:
	Try to mount a linux lvm whose name contains an underscore.
>Fix:
--- g_linux_lvm.c       (revision 194560)
+++ g_linux_lvm.c       (working copy)
@@ -828,7 +828,8 @@

 #define        GRAB_NAME(tok, name, len)                                      \
        len = 0;                                                        \
-       while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len])) &&  \
+       while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len]) ||   \
+       tok[len] == '_' ) &&                                            \
            len < G_LLVM_NAMELEN - 1)                                   \
                len++;                                                  \
        bcopy(tok, name, len);                                          \


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-geom 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Sun Jun 21 05:07:14 UTC 2009 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=135874 

From: Ulf Lilleengen <ulf.lilleengen@gmail.com>
To: freebsd-geom@freebsd.org
Cc: bug-followup@freebsd.org,
 thompsa@freebsd.org
Subject: Re: kern/135874: [geom] [patch] geom_linux_lvm misses newer fedora defaults
Date: Sun, 21 Jun 2009 21:45:35 +0200

 On Sunday 21 June 2009 07:07:41 linimon@freebsd.org wrote:
 > Old Synopsis: Geom_linux_lvm misses newer fedora defaults
 > New Synopsis: [geom] [patch] geom_linux_lvm misses newer fedora defaults
 >
 > Responsible-Changed-From-To: freebsd-bugs->freebsd-geom
 > Responsible-Changed-By: linimon
 > Responsible-Changed-When: Sun Jun 21 05:07:14 UTC 2009
 > Responsible-Changed-Why:
 > Over to maintainer(s).
 >
 > http://www.freebsd.org/cgi/query-pr.cgi?pr=135874
 > _______________________________________________
 > freebsd-geom@freebsd.org mailing list
 > http://lists.freebsd.org/mailman/listinfo/freebsd-geom
 > To unsubscribe, send any mail to "freebsd-geom-unsubscribe@freebsd.org"
 Hi,
 
 I took a look at the LVM2 source code to see what is defined as a valid volume 
 name, and came up with a patch[1]. If theres not any protest against it, i'll 
 commit it.
 
 [1] http://people.freebsd.org/~lulf/patches/llvm_validate.diff
 -- 
 Ulf Lilleengen

From: Ulf Lilleengen <ulf.lilleengen@gmail.com>
To: bug-followup@freebsd.org
Cc:  
Subject: Re: kern/135874: [geom] [patch] geom_linux_lvm misses newer fedora defaults
Date: Sun, 21 Jun 2009 22:32:17 +0200

 On Sunday 21 June 2009 22:20:06 Ulf Lilleengen wrote:
 > The following reply was made to PR kern/135874; it has been noted by GNATS.
 >
 > From: Ulf Lilleengen <ulf.lilleengen@gmail.com>
 > To: freebsd-geom@freebsd.org
 > Cc: bug-followup@freebsd.org,
 >  thompsa@freebsd.org
 > Subject: Re: kern/135874: [geom] [patch] geom_linux_lvm misses newer fedora
 > defaults Date: Sun, 21 Jun 2009 21:45:35 +0200
 >
 >  On Sunday 21 June 2009 07:07:41 linimon@freebsd.org wrote:
 >  > Old Synopsis: Geom_linux_lvm misses newer fedora defaults
 >  > New Synopsis: [geom] [patch] geom_linux_lvm misses newer fedora defaults
 >  >
 >  > Responsible-Changed-From-To: freebsd-bugs->freebsd-geom
 >  > Responsible-Changed-By: linimon
 >  > Responsible-Changed-When: Sun Jun 21 05:07:14 UTC 2009
 >  > Responsible-Changed-Why:
 >  > Over to maintainer(s).
 >  >
 >  > http://www.freebsd.org/cgi/query-pr.cgi?pr=135874
 >  > _______________________________________________
 >  > freebsd-geom@freebsd.org mailing list
 >  > http://lists.freebsd.org/mailman/listinfo/freebsd-geom
 >  > To unsubscribe, send any mail to "freebsd-geom-unsubscribe@freebsd.org"
 >
 >  Hi,
 >
 >  I took a look at the LVM2 source code to see what is defined as a valid
 > volume name, and came up with a patch[1]. If theres not any protest against
 > it, i'll commit it.
 >
 >  [1] http://people.freebsd.org/~lulf/patches/llvm_validate.diff
 >  --
 Updated patch:
 http://people.freebsd.org/~lulf/patches/llvm_validate2.diff
 
 -- 
 Ulf Lilleengen

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/135874: commit references a PR
Date: Wed, 24 Jun 2009 22:09:45 +0000 (UTC)

 Author: lulf
 Date: Wed Jun 24 22:09:30 2009
 New Revision: 194924
 URL: http://svn.freebsd.org/changeset/base/194924
 
 Log:
   - Apply the same naming rules of LVM names as done in the LVM code itself.
   
   PR:		kern/135874
 
 Modified:
   head/sys/geom/linux_lvm/g_linux_lvm.c
 
 Modified: head/sys/geom/linux_lvm/g_linux_lvm.c
 ==============================================================================
 --- head/sys/geom/linux_lvm/g_linux_lvm.c	Wed Jun 24 22:06:56 2009	(r194923)
 +++ head/sys/geom/linux_lvm/g_linux_lvm.c	Wed Jun 24 22:09:30 2009	(r194924)
 @@ -826,14 +826,6 @@ llvm_md_decode(const u_char *data, struc
  	return (0);
  }
  
 -#define	GRAB_NAME(tok, name, len)					\
 -	len = 0;							\
 -	while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len])) &&	\
 -	    len < G_LLVM_NAMELEN - 1)					\
 -		len++;							\
 -	bcopy(tok, name, len);						\
 -	name[len] = '\0';
 -
  #define	GRAB_INT(key, tok1, tok2, v)					\
  	if (tok1 && tok2 && strncmp(tok1, key, sizeof(key)) == 0) {	\
  		v = strtol(tok2, &tok1, 10);				\
 @@ -864,6 +856,27 @@ llvm_md_decode(const u_char *data, struc
  			break;						\
  		}
  
 +static size_t 
 +llvm_grab_name(char *name, const char *tok)
 +{
 +	size_t len;
 +
 +	len = 0;
 +	if (tok == NULL)
 +		return (0);
 +	if (tok[0] == '-')
 +		return (0);
 +	if (strcmp(tok, ".") == 0 || strcmp(tok, "..") == 0)
 +		return (0);
 +	while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len]) ||
 +	    tok[len] == '.' || tok[len] == '_' || tok[len] == '-' ||
 +	    tok[len] == '+') && len < G_LLVM_NAMELEN - 1)
 +		len++;
 +	bcopy(tok, name, len);
 +	name[len] = '\0';
 +	return (len);
 +}
 +
  static int
  llvm_textconf_decode(u_char *data, int buflen, struct g_llvm_metadata *md)
  {
 @@ -872,7 +885,7 @@ llvm_textconf_decode(u_char *data, int b
  	char *tok, *v;
  	char name[G_LLVM_NAMELEN];
  	char uuid[G_LLVM_UUIDLEN];
 -	int len;
 +	size_t len;
  
  	if (buf == NULL || *buf == '\0')
  		return (EINVAL);
 @@ -880,7 +893,7 @@ llvm_textconf_decode(u_char *data, int b
  	tok = strsep(&buf, "\n");
  	if (tok == NULL)
  		return (EINVAL);
 -	GRAB_NAME(tok, name, len);
 +	len = llvm_grab_name(name, tok);
  	if (len == 0)
  		return (EINVAL);
  
 @@ -970,7 +983,7 @@ llvm_textconf_decode_pv(char **buf, char
  {
  	struct g_llvm_pv	*pv;
  	char *v;
 -	int len;
 +	size_t len;
  
  	if (*buf == NULL || **buf == '\0')
  		return (EINVAL);
 @@ -983,7 +996,7 @@ llvm_textconf_decode_pv(char **buf, char
  	len = 0;
  	if (tok == NULL)
  		goto bad;
 -	GRAB_NAME(tok, pv->pv_name, len);
 +	len = llvm_grab_name(pv->pv_name, tok);
  	if (len == 0)
  		goto bad;
  
 @@ -1024,7 +1037,7 @@ llvm_textconf_decode_lv(char **buf, char
  	struct g_llvm_lv	*lv;
  	struct g_llvm_segment *sg;
  	char *v;
 -	int len;
 +	size_t len;
  
  	if (*buf == NULL || **buf == '\0')
  		return (EINVAL);
 @@ -1036,10 +1049,9 @@ llvm_textconf_decode_lv(char **buf, char
  	lv->lv_vg = vg;
  	LIST_INIT(&lv->lv_segs);
  
 -	len = 0;
  	if (tok == NULL)
  		goto bad;
 -	GRAB_NAME(tok, lv->lv_name, len);
 +	len = llvm_grab_name(lv->lv_name, tok);
  	if (len == 0)
  		goto bad;
  
 @@ -1162,7 +1174,6 @@ bad:
  	free(sg, M_GLLVM);
  	return (-1);
  }
 -#undef	GRAB_NAME
  #undef	GRAB_INT
  #undef	GRAB_STR
  #undef	SPLIT
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/135874: commit references a PR
Date: Sun, 19 Jul 2009 12:57:22 +0000 (UTC)

 Author: lulf
 Date: Sun Jul 19 12:57:10 2009
 New Revision: 195759
 URL: http://svn.freebsd.org/changeset/base/195759
 
 Log:
   MFC r194924:
   
   - Apply the same naming rules of LVM names as done in the LVM code itself.
   
   PR:		kern/135874
 
 Modified:
   stable/7/sys/   (props changed)
   stable/7/sys/contrib/pf/   (props changed)
   stable/7/sys/geom/linux_lvm/g_linux_lvm.c
 
 Modified: stable/7/sys/geom/linux_lvm/g_linux_lvm.c
 ==============================================================================
 --- stable/7/sys/geom/linux_lvm/g_linux_lvm.c	Sat Jul 18 21:50:53 2009	(r195758)
 +++ stable/7/sys/geom/linux_lvm/g_linux_lvm.c	Sun Jul 19 12:57:10 2009	(r195759)
 @@ -826,14 +826,6 @@ llvm_md_decode(const u_char *data, struc
  	return (0);
  }
  
 -#define	GRAB_NAME(tok, name, len)					\
 -	len = 0;							\
 -	while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len])) &&	\
 -	    len < G_LLVM_NAMELEN - 1)					\
 -		len++;							\
 -	bcopy(tok, name, len);						\
 -	name[len] = '\0';
 -
  #define	GRAB_INT(key, tok1, tok2, v)					\
  	if (tok1 && tok2 && strncmp(tok1, key, sizeof(key)) == 0) {	\
  		v = strtol(tok2, &tok1, 10);				\
 @@ -864,6 +856,27 @@ llvm_md_decode(const u_char *data, struc
  			break;						\
  		}
  
 +static size_t 
 +llvm_grab_name(char *name, const char *tok)
 +{
 +	size_t len;
 +
 +	len = 0;
 +	if (tok == NULL)
 +		return (0);
 +	if (tok[0] == '-')
 +		return (0);
 +	if (strcmp(tok, ".") == 0 || strcmp(tok, "..") == 0)
 +		return (0);
 +	while (tok[len] && (isalpha(tok[len]) || isdigit(tok[len]) ||
 +	    tok[len] == '.' || tok[len] == '_' || tok[len] == '-' ||
 +	    tok[len] == '+') && len < G_LLVM_NAMELEN - 1)
 +		len++;
 +	bcopy(tok, name, len);
 +	name[len] = '\0';
 +	return (len);
 +}
 +
  static int
  llvm_textconf_decode(u_char *data, int buflen, struct g_llvm_metadata *md)
  {
 @@ -872,7 +885,7 @@ llvm_textconf_decode(u_char *data, int b
  	char *tok, *v;
  	char name[G_LLVM_NAMELEN];
  	char uuid[G_LLVM_UUIDLEN];
 -	int len;
 +	size_t len;
  
  	if (buf == NULL || *buf == '\0')
  		return (EINVAL);
 @@ -880,7 +893,7 @@ llvm_textconf_decode(u_char *data, int b
  	tok = strsep(&buf, "\n");
  	if (tok == NULL)
  		return (EINVAL);
 -	GRAB_NAME(tok, name, len);
 +	len = llvm_grab_name(name, tok);
  	if (len == 0)
  		return (EINVAL);
  
 @@ -970,7 +983,7 @@ llvm_textconf_decode_pv(char **buf, char
  {
  	struct g_llvm_pv	*pv;
  	char *v;
 -	int len;
 +	size_t len;
  
  	if (*buf == NULL || **buf == '\0')
  		return (EINVAL);
 @@ -983,7 +996,7 @@ llvm_textconf_decode_pv(char **buf, char
  	len = 0;
  	if (tok == NULL)
  		goto bad;
 -	GRAB_NAME(tok, pv->pv_name, len);
 +	len = llvm_grab_name(pv->pv_name, tok);
  	if (len == 0)
  		goto bad;
  
 @@ -1024,7 +1037,7 @@ llvm_textconf_decode_lv(char **buf, char
  	struct g_llvm_lv	*lv;
  	struct g_llvm_segment *sg;
  	char *v;
 -	int len;
 +	size_t len;
  
  	if (*buf == NULL || **buf == '\0')
  		return (EINVAL);
 @@ -1036,10 +1049,9 @@ llvm_textconf_decode_lv(char **buf, char
  	lv->lv_vg = vg;
  	LIST_INIT(&lv->lv_segs);
  
 -	len = 0;
  	if (tok == NULL)
  		goto bad;
 -	GRAB_NAME(tok, lv->lv_name, len);
 +	len = llvm_grab_name(lv->lv_name, tok);
  	if (len == 0)
  		goto bad;
  
 @@ -1162,7 +1174,6 @@ bad:
  	free(sg, M_GLLVM);
  	return (-1);
  }
 -#undef	GRAB_NAME
  #undef	GRAB_INT
  #undef	GRAB_STR
  #undef	SPLIT
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: lulf 
State-Changed-When: Wed Jul 22 18:05:09 UTC 2009 
State-Changed-Why:  
- Fixed in both HEAD and RELENG_7. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=135874 
>Unformatted:
