All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] RFC cifs-utils: Use autoconf to get kernel headers
@ 2013-07-22 17:47 scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w
       [not found] ` <1374515243-21624-1-git-send-email-scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w @ 2013-07-22 17:47 UTC (permalink / raw)
  To: jlayton-H+wXaHxf7aLQT0dZR+AlfA
  Cc: Scott Lovenberg, gang.chen-bOixZGp5f+dBDgjK7y7TUQ,
	sfrench-eUNUBHrolfbYtjvyW6yDsg, linux-cifs-u79uwXL29TY76Z2rM5mHXA,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ

From: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

This is an RFC for how we'd use autoconf to get the Linux kernel headers
in include/uapi/linux/cifs.h.  If this is the correct approach, I'll
formalize this patch.  I've never played with autoconf before so this is
completely untested but should (read: might) probably work.

Signed-off-by: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
 configure.ac |  3 +++
 mount.cifs.c | 27 +++++++++++++++++++--------
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/configure.ac b/configure.ac
index b5f7c49..708fdeb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,6 +111,9 @@ AC_SUBST(RT_LDADD)
 # Checks for header files.
 AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h inttypes.h limits.h mntent.h netdb.h stddef.h stdint.h stdbool.h stdlib.h stdio.h errno.h string.h strings.h sys/mount.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h], , [AC_MSG_ERROR([necessary header(s) not found])])
 
+# Check for linux's cifs.h header that defines string lengths.
+AC_CHECK_HEADER([linux/cifs.h], ,[AC_MSG_WARN([cifs kernel header not found. Using internal values.])])
+
 # do we have sys/fsuid.h and setfsuid()?
 AC_CHECK_HEADERS([sys/fsuid.h])
 AC_CHECK_FUNC(setfsuid, , [AC_MSG_ERROR([System does not support setfsuid()])])
diff --git a/mount.cifs.c b/mount.cifs.c
index 77ea0f8..0fca0a9 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -62,6 +62,9 @@
 #include "mount.h"
 #include "util.h"
 #include "resolve_host.h"
+#ifdef HAVE_LINUX_CIFS_H
+#include <linux/cifs.h>
+#endif /* HAVE_LINUX_CIFS_h */
 
 #ifndef MS_MOVE 
 #define MS_MOVE 8192 
@@ -91,16 +94,24 @@
 
 /* Max length of the share name portion of a UNC. Share names over 80
  * characters cannot be accessed via commandline in Windows 2000/XP. */
-#define MAX_SHARE_LEN 256
+#ifndef MAX_SHARE_SIZE
+#define MAX_SHARE_SIZE 256
+#endif
 
 /* Max user name length. */
+#ifndef MAX_USERNAME_SIZE
 #define MAX_USERNAME_SIZE 256
+#endif
 
 /* Max domain size. */
-#define MAX_DOMAIN_SIZE 256
+#ifndef MAX_DOMAINNAME_SIZE
+#define MAX_DOMAINNAME_SIZE 256
+#endif
 
 /* Max password size. */
-#define MOUNT_PASSWD_SIZE 512
+#ifndef MAX_PASSWORD_SIZE
+#define MAX_PASSWORD_SIZE 512
+#endif
 
 
 
@@ -176,12 +187,12 @@
 struct parsed_mount_info {
 	unsigned long flags;
 	char host[NI_MAXHOST + 1];
-	char share[MAX_SHARE_LEN + 1];
+	char share[MAX_SHARE_SIZE + 1];
 	char prefix[PATH_MAX + 1];
 	char options[MAX_OPTIONS_LEN];
-	char domain[MAX_DOMAIN_SIZE + 1];
+	char domain[MAX_DOMAINNAME_SIZE + 1];
 	char username[MAX_USERNAME_SIZE + 1];
-	char password[MOUNT_PASSWD_SIZE + 1];
+	char password[MAX_PASSWORD_SIZE + 1];
 	char addrlist[MAX_ADDR_LIST_LEN];
 	unsigned int got_user:1;
 	unsigned int got_password:1;
@@ -1766,13 +1777,13 @@ assemble_mountinfo(struct parsed_mount_info *parsed_info,
 	}
 
 	if (!parsed_info->got_password) {
-		char tmp_pass[MOUNT_PASSWD_SIZE + 1];
+		char tmp_pass[MAX_PASSWORD_SIZE + 1];
 		char *prompt = NULL;
 
 		if(asprintf(&prompt, "Password for %s@%s: ", parsed_info->username, orig_dev) < 0)
 			prompt = NULL;
 
-		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MOUNT_PASSWD_SIZE + 1)) {
+		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MAX_PASSWORD_SIZE + 1)) {
 			rc = set_password(parsed_info, tmp_pass);
 		} else {
 			fprintf(stderr, "Error reading password, exiting\n");
-- 
1.8.1.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] RFC cifs-utils: Use autoconf to get kernel headers
       [not found] ` <1374515243-21624-1-git-send-email-scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-07-22 18:27   ` Jeff Layton
       [not found]     ` <20130722142752.046fde43-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Layton @ 2013-07-22 18:27 UTC (permalink / raw)
  To: scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w
  Cc: gang.chen-bOixZGp5f+dBDgjK7y7TUQ, sfrench-eUNUBHrolfbYtjvyW6yDsg,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ

On Mon, 22 Jul 2013 13:47:23 -0400
scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:

> From: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> 
> This is an RFC for how we'd use autoconf to get the Linux kernel headers
> in include/uapi/linux/cifs.h.  If this is the correct approach, I'll
> formalize this patch.  I've never played with autoconf before so this is
> completely untested but should (read: might) probably work.
> 
> Signed-off-by: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>  configure.ac |  3 +++
>  mount.cifs.c | 27 +++++++++++++++++++--------
>  2 files changed, 22 insertions(+), 8 deletions(-)
> 

I think the first step is to do a kernel patch that makes this cifs.h
file. I won't commit any sort of patch like this until that's committed
first.

Also "cifs.h" is somewhat generic. I think you should probably name it
a bit more specifically -- maybe include/uapi/linux/cifs/cifs_mount.h...

> diff --git a/configure.ac b/configure.ac
> index b5f7c49..708fdeb 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -111,6 +111,9 @@ AC_SUBST(RT_LDADD)
>  # Checks for header files.
>  AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h inttypes.h limits.h mntent.h netdb.h stddef.h stdint.h stdbool.h stdlib.h stdio.h errno.h string.h strings.h sys/mount.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h], , [AC_MSG_ERROR([necessary header(s) not found])])
>  
> +# Check for linux's cifs.h header that defines string lengths.
> +AC_CHECK_HEADER([linux/cifs.h], ,[AC_MSG_WARN([cifs kernel header not found. Using internal values.])])
> +
>  # do we have sys/fsuid.h and setfsuid()?
>  AC_CHECK_HEADERS([sys/fsuid.h])
>  AC_CHECK_FUNC(setfsuid, , [AC_MSG_ERROR([System does not support setfsuid()])])
> diff --git a/mount.cifs.c b/mount.cifs.c
> index 77ea0f8..0fca0a9 100644
> --- a/mount.cifs.c
> +++ b/mount.cifs.c
> @@ -62,6 +62,9 @@
>  #include "mount.h"
>  #include "util.h"
>  #include "resolve_host.h"
> +#ifdef HAVE_LINUX_CIFS_H
> +#include <linux/cifs.h>
> +#endif /* HAVE_LINUX_CIFS_h */
>  
>  #ifndef MS_MOVE 
>  #define MS_MOVE 8192 
> @@ -91,16 +94,24 @@
>  
>  /* Max length of the share name portion of a UNC. Share names over 80
>   * characters cannot be accessed via commandline in Windows 2000/XP. */
> -#define MAX_SHARE_LEN 256
> +#ifndef MAX_SHARE_SIZE
> +#define MAX_SHARE_SIZE 256
> +#endif
>  
>  /* Max user name length. */
> +#ifndef MAX_USERNAME_SIZE
>  #define MAX_USERNAME_SIZE 256
> +#endif
>  
>  /* Max domain size. */
> -#define MAX_DOMAIN_SIZE 256
> +#ifndef MAX_DOMAINNAME_SIZE
> +#define MAX_DOMAINNAME_SIZE 256
> +#endif
>  
>  /* Max password size. */
> -#define MOUNT_PASSWD_SIZE 512
> +#ifndef MAX_PASSWORD_SIZE
> +#define MAX_PASSWORD_SIZE 512
> +#endif
>  
>  
>  
> @@ -176,12 +187,12 @@
>  struct parsed_mount_info {
>  	unsigned long flags;
>  	char host[NI_MAXHOST + 1];
> -	char share[MAX_SHARE_LEN + 1];
> +	char share[MAX_SHARE_SIZE + 1];
>  	char prefix[PATH_MAX + 1];
>  	char options[MAX_OPTIONS_LEN];
> -	char domain[MAX_DOMAIN_SIZE + 1];
> +	char domain[MAX_DOMAINNAME_SIZE + 1];
>  	char username[MAX_USERNAME_SIZE + 1];
> -	char password[MOUNT_PASSWD_SIZE + 1];
> +	char password[MAX_PASSWORD_SIZE + 1];
>  	char addrlist[MAX_ADDR_LIST_LEN];
>  	unsigned int got_user:1;
>  	unsigned int got_password:1;
> @@ -1766,13 +1777,13 @@ assemble_mountinfo(struct parsed_mount_info *parsed_info,
>  	}
>  
>  	if (!parsed_info->got_password) {
> -		char tmp_pass[MOUNT_PASSWD_SIZE + 1];
> +		char tmp_pass[MAX_PASSWORD_SIZE + 1];
>  		char *prompt = NULL;
>  
>  		if(asprintf(&prompt, "Password for %s@%s: ", parsed_info->username, orig_dev) < 0)
>  			prompt = NULL;
>  
> -		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MOUNT_PASSWD_SIZE + 1)) {
> +		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MAX_PASSWORD_SIZE + 1)) {
>  			rc = set_password(parsed_info, tmp_pass);
>  		} else {
>  			fprintf(stderr, "Error reading password, exiting\n");


-- 
Jeff Layton <jlayton-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] RFC cifs-utils: Use autoconf to get kernel headers
       [not found]     ` <20130722142752.046fde43-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
@ 2013-07-23  0:21       ` Chen Gang
       [not found]         ` <51EDCC97.9040207-bOixZGp5f+dBDgjK7y7TUQ@public.gmane.org>
  2013-07-25 15:33         ` Scott Lovenberg
  0 siblings, 2 replies; 5+ messages in thread
From: Chen Gang @ 2013-07-23  0:21 UTC (permalink / raw)
  To: Jeff Layton
  Cc: scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w,
	sfrench-eUNUBHrolfbYtjvyW6yDsg, linux-cifs-u79uwXL29TY76Z2rM5mHXA,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ

On 07/23/2013 02:27 AM, Jeff Layton wrote:
> On Mon, 22 Jul 2013 13:47:23 -0400
> scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
> 
>> From: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>
>> This is an RFC for how we'd use autoconf to get the Linux kernel headers
>> in include/uapi/linux/cifs.h.  If this is the correct approach, I'll
>> formalize this patch.  I've never played with autoconf before so this is
>> completely untested but should (read: might) probably work.
>>
>> Signed-off-by: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>> ---
>>  configure.ac |  3 +++
>>  mount.cifs.c | 27 +++++++++++++++++++--------
>>  2 files changed, 22 insertions(+), 8 deletions(-)
>>
> 
> I think the first step is to do a kernel patch that makes this cifs.h
> file. I won't commit any sort of patch like this until that's committed
> first.
> 
> Also "cifs.h" is somewhat generic. I think you should probably name it
> a bit more specifically -- maybe include/uapi/linux/cifs/cifs_mount.h...
> 

Do we need add prefix 'CIFS_' for the macro constants to let them in
their own name space ? (e.g. use 'CIFS_MAX_DOMAIN_SIZE' instead of
'MAX_DOMAIN_SIZE').

Thanks.

>> diff --git a/configure.ac b/configure.ac
>> index b5f7c49..708fdeb 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -111,6 +111,9 @@ AC_SUBST(RT_LDADD)
>>  # Checks for header files.
>>  AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h inttypes.h limits.h mntent.h netdb.h stddef.h stdint.h stdbool.h stdlib.h stdio.h errno.h string.h strings.h sys/mount.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h], , [AC_MSG_ERROR([necessary header(s) not found])])
>>  
>> +# Check for linux's cifs.h header that defines string lengths.
>> +AC_CHECK_HEADER([linux/cifs.h], ,[AC_MSG_WARN([cifs kernel header not found. Using internal values.])])
>> +
>>  # do we have sys/fsuid.h and setfsuid()?
>>  AC_CHECK_HEADERS([sys/fsuid.h])
>>  AC_CHECK_FUNC(setfsuid, , [AC_MSG_ERROR([System does not support setfsuid()])])
>> diff --git a/mount.cifs.c b/mount.cifs.c
>> index 77ea0f8..0fca0a9 100644
>> --- a/mount.cifs.c
>> +++ b/mount.cifs.c
>> @@ -62,6 +62,9 @@
>>  #include "mount.h"
>>  #include "util.h"
>>  #include "resolve_host.h"
>> +#ifdef HAVE_LINUX_CIFS_H
>> +#include <linux/cifs.h>
>> +#endif /* HAVE_LINUX_CIFS_h */
>>  
>>  #ifndef MS_MOVE 
>>  #define MS_MOVE 8192 
>> @@ -91,16 +94,24 @@
>>  
>>  /* Max length of the share name portion of a UNC. Share names over 80
>>   * characters cannot be accessed via commandline in Windows 2000/XP. */
>> -#define MAX_SHARE_LEN 256
>> +#ifndef MAX_SHARE_SIZE
>> +#define MAX_SHARE_SIZE 256
>> +#endif
>>  
>>  /* Max user name length. */
>> +#ifndef MAX_USERNAME_SIZE
>>  #define MAX_USERNAME_SIZE 256
>> +#endif
>>  
>>  /* Max domain size. */
>> -#define MAX_DOMAIN_SIZE 256
>> +#ifndef MAX_DOMAINNAME_SIZE
>> +#define MAX_DOMAINNAME_SIZE 256
>> +#endif
>>  
>>  /* Max password size. */
>> -#define MOUNT_PASSWD_SIZE 512
>> +#ifndef MAX_PASSWORD_SIZE
>> +#define MAX_PASSWORD_SIZE 512
>> +#endif
>>  
>>  
>>  
>> @@ -176,12 +187,12 @@
>>  struct parsed_mount_info {
>>  	unsigned long flags;
>>  	char host[NI_MAXHOST + 1];
>> -	char share[MAX_SHARE_LEN + 1];
>> +	char share[MAX_SHARE_SIZE + 1];
>>  	char prefix[PATH_MAX + 1];
>>  	char options[MAX_OPTIONS_LEN];
>> -	char domain[MAX_DOMAIN_SIZE + 1];
>> +	char domain[MAX_DOMAINNAME_SIZE + 1];
>>  	char username[MAX_USERNAME_SIZE + 1];
>> -	char password[MOUNT_PASSWD_SIZE + 1];
>> +	char password[MAX_PASSWORD_SIZE + 1];
>>  	char addrlist[MAX_ADDR_LIST_LEN];
>>  	unsigned int got_user:1;
>>  	unsigned int got_password:1;
>> @@ -1766,13 +1777,13 @@ assemble_mountinfo(struct parsed_mount_info *parsed_info,
>>  	}
>>  
>>  	if (!parsed_info->got_password) {
>> -		char tmp_pass[MOUNT_PASSWD_SIZE + 1];
>> +		char tmp_pass[MAX_PASSWORD_SIZE + 1];
>>  		char *prompt = NULL;
>>  
>>  		if(asprintf(&prompt, "Password for %s@%s: ", parsed_info->username, orig_dev) < 0)
>>  			prompt = NULL;
>>  
>> -		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MOUNT_PASSWD_SIZE + 1)) {
>> +		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MAX_PASSWORD_SIZE + 1)) {
>>  			rc = set_password(parsed_info, tmp_pass);
>>  		} else {
>>  			fprintf(stderr, "Error reading password, exiting\n");
> 
> 


-- 
Chen Gang

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] RFC cifs-utils: Use autoconf to get kernel headers
       [not found]         ` <51EDCC97.9040207-bOixZGp5f+dBDgjK7y7TUQ@public.gmane.org>
@ 2013-07-23  0:30           ` Chen Gang
  0 siblings, 0 replies; 5+ messages in thread
From: Chen Gang @ 2013-07-23  0:30 UTC (permalink / raw)
  To: Jeff Layton
  Cc: scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w,
	sfrench-eUNUBHrolfbYtjvyW6yDsg, linux-cifs-u79uwXL29TY76Z2rM5mHXA,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ

On 07/23/2013 08:21 AM, Chen Gang wrote:
> On 07/23/2013 02:27 AM, Jeff Layton wrote:
>> On Mon, 22 Jul 2013 13:47:23 -0400
>> scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
>>
>>> From: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>>
>>> This is an RFC for how we'd use autoconf to get the Linux kernel headers
>>> in include/uapi/linux/cifs.h.  If this is the correct approach, I'll
>>> formalize this patch.  I've never played with autoconf before so this is
>>> completely untested but should (read: might) probably work.
>>>
>>> Signed-off-by: Scott Lovenberg <scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>>> ---
>>>  configure.ac |  3 +++
>>>  mount.cifs.c | 27 +++++++++++++++++++--------
>>>  2 files changed, 22 insertions(+), 8 deletions(-)
>>>
>>
>> I think the first step is to do a kernel patch that makes this cifs.h
>> file. I won't commit any sort of patch like this until that's committed
>> first.
>>
>> Also "cifs.h" is somewhat generic. I think you should probably name it
>> a bit more specifically -- maybe include/uapi/linux/cifs/cifs_mount.h...
>>
> 
> Do we need add prefix 'CIFS_' for the macro constants to let them in
> their own name space ? (e.g. use 'CIFS_MAX_DOMAIN_SIZE' instead of
> 'MAX_DOMAIN_SIZE').
> 
> Thanks.
> 
>>> diff --git a/configure.ac b/configure.ac
>>> index b5f7c49..708fdeb 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -111,6 +111,9 @@ AC_SUBST(RT_LDADD)
>>>  # Checks for header files.
>>>  AC_CHECK_HEADERS([arpa/inet.h ctype.h fcntl.h inttypes.h limits.h mntent.h netdb.h stddef.h stdint.h stdbool.h stdlib.h stdio.h errno.h string.h strings.h sys/mount.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h], , [AC_MSG_ERROR([necessary header(s) not found])])
>>>  
>>> +# Check for linux's cifs.h header that defines string lengths.
>>> +AC_CHECK_HEADER([linux/cifs.h], ,[AC_MSG_WARN([cifs kernel header not found. Using internal values.])])
>>> +
>>>  # do we have sys/fsuid.h and setfsuid()?
>>>  AC_CHECK_HEADERS([sys/fsuid.h])
>>>  AC_CHECK_FUNC(setfsuid, , [AC_MSG_ERROR([System does not support setfsuid()])])
>>> diff --git a/mount.cifs.c b/mount.cifs.c
>>> index 77ea0f8..0fca0a9 100644
>>> --- a/mount.cifs.c
>>> +++ b/mount.cifs.c
>>> @@ -62,6 +62,9 @@
>>>  #include "mount.h"
>>>  #include "util.h"
>>>  #include "resolve_host.h"
>>> +#ifdef HAVE_LINUX_CIFS_H
>>> +#include <linux/cifs.h>
>>> +#endif /* HAVE_LINUX_CIFS_h */
>>>  
>>>  #ifndef MS_MOVE 
>>>  #define MS_MOVE 8192 
>>> @@ -91,16 +94,24 @@
>>>  
>>>  /* Max length of the share name portion of a UNC. Share names over 80
>>>   * characters cannot be accessed via commandline in Windows 2000/XP. */
>>> -#define MAX_SHARE_LEN 256
>>> +#ifndef MAX_SHARE_SIZE
>>> +#define MAX_SHARE_SIZE 256
>>> +#endif
>>>  
>>>  /* Max user name length. */
>>> +#ifndef MAX_USERNAME_SIZE
>>>  #define MAX_USERNAME_SIZE 256
>>> +#endif
>>>  
>>>  /* Max domain size. */
>>> -#define MAX_DOMAIN_SIZE 256
>>> +#ifndef MAX_DOMAINNAME_SIZE
>>> +#define MAX_DOMAINNAME_SIZE 256
>>> +#endif
>>>  
>>>  /* Max password size. */
>>> -#define MOUNT_PASSWD_SIZE 512
>>> +#ifndef MAX_PASSWORD_SIZE
>>> +#define MAX_PASSWORD_SIZE 512
>>> +#endif
>>>  
>>>  
>>>  
>>> @@ -176,12 +187,12 @@
>>>  struct parsed_mount_info {
>>>  	unsigned long flags;
>>>  	char host[NI_MAXHOST + 1];
>>> -	char share[MAX_SHARE_LEN + 1];
>>> +	char share[MAX_SHARE_SIZE + 1];
>>>  	char prefix[PATH_MAX + 1];
>>>  	char options[MAX_OPTIONS_LEN];
>>> -	char domain[MAX_DOMAIN_SIZE + 1];
>>> +	char domain[MAX_DOMAINNAME_SIZE + 1];

Also, as far as I know, MAX_DOMAINNAME_SIZE is 256 which already content
'\0', do we need consider about it ? (and the same to another macro
constants).

>>>  	char username[MAX_USERNAME_SIZE + 1];
>>> -	char password[MOUNT_PASSWD_SIZE + 1];
>>> +	char password[MAX_PASSWORD_SIZE + 1];
>>>  	char addrlist[MAX_ADDR_LIST_LEN];
>>>  	unsigned int got_user:1;
>>>  	unsigned int got_password:1;
>>> @@ -1766,13 +1777,13 @@ assemble_mountinfo(struct parsed_mount_info *parsed_info,
>>>  	}
>>>  
>>>  	if (!parsed_info->got_password) {
>>> -		char tmp_pass[MOUNT_PASSWD_SIZE + 1];
>>> +		char tmp_pass[MAX_PASSWORD_SIZE + 1];
>>>  		char *prompt = NULL;
>>>  
>>>  		if(asprintf(&prompt, "Password for %s@%s: ", parsed_info->username, orig_dev) < 0)
>>>  			prompt = NULL;
>>>  
>>> -		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MOUNT_PASSWD_SIZE + 1)) {
>>> +		if (get_password(prompt ? prompt : "Password: ", tmp_pass, MAX_PASSWORD_SIZE + 1)) {
>>>  			rc = set_password(parsed_info, tmp_pass);
>>>  		} else {
>>>  			fprintf(stderr, "Error reading password, exiting\n");
>>
>>
> 
> 


-- 
Chen Gang

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] RFC cifs-utils: Use autoconf to get kernel headers
  2013-07-23  0:21       ` Chen Gang
       [not found]         ` <51EDCC97.9040207-bOixZGp5f+dBDgjK7y7TUQ@public.gmane.org>
@ 2013-07-25 15:33         ` Scott Lovenberg
  1 sibling, 0 replies; 5+ messages in thread
From: Scott Lovenberg @ 2013-07-25 15:33 UTC (permalink / raw)
  To: Chen Gang; +Cc: sfrench@samba.org, linux-cifs, samba-technical, Jeff Layton

On Mon, Jul 22, 2013 at 8:21 PM, Chen Gang <gang.chen@asianux.com> wrote:

> On 07/23/2013 02:27 AM, Jeff Layton wrote:
> > On Mon, 22 Jul 2013 13:47:23 -0400
> > scott.lovenberg@gmail.com wrote:
> >
> >> From: Scott Lovenberg <scott.lovenberg@gmail.com>
> >>
> >> This is an RFC for how we'd use autoconf to get the Linux kernel headers
> >> in include/uapi/linux/cifs.h.  If this is the correct approach, I'll
> >> formalize this patch.  I've never played with autoconf before so this is
> >> completely untested but should (read: might) probably work.
> >>
> >> Signed-off-by: Scott Lovenberg <scott.lovenberg@gmail.com>
> >> ---
> >>  configure.ac |  3 +++
> >>  mount.cifs.c | 27 +++++++++++++++++++--------
> >>  2 files changed, 22 insertions(+), 8 deletions(-)
> >>
> >
> > I think the first step is to do a kernel patch that makes this cifs.h
> > file. I won't commit any sort of patch like this until that's committed
> > first.
> >
> > Also "cifs.h" is somewhat generic. I think you should probably name it
> > a bit more specifically -- maybe include/uapi/linux/cifs/cifs_mount.h...
> >
>
> Do we need add prefix 'CIFS_' for the macro constants to let them in
> their own name space ? (e.g. use 'CIFS_MAX_DOMAIN_SIZE' instead of
> 'MAX_DOMAIN_SIZE').
>
> Thanks.
>
>
>
--
> Chen Gang
>

That's probably a good idea.  I'll be submitting this patch set later today.

-- 
Peace and Blessings,
-Scott.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-07-25 15:33 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-22 17:47 [PATCH] RFC cifs-utils: Use autoconf to get kernel headers scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w
     [not found] ` <1374515243-21624-1-git-send-email-scott.lovenberg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-07-22 18:27   ` Jeff Layton
     [not found]     ` <20130722142752.046fde43-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org>
2013-07-23  0:21       ` Chen Gang
     [not found]         ` <51EDCC97.9040207-bOixZGp5f+dBDgjK7y7TUQ@public.gmane.org>
2013-07-23  0:30           ` Chen Gang
2013-07-25 15:33         ` Scott Lovenberg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.