From 400ebcb3bea6f21678b9e656d930a14bbd71fe7a Mon Sep 17 00:00:00 2001
From: Scott Lovenberg <scott.lovenberg@gmail.com>
Date: Tue, 11 May 2010 09:32:34 -0400
Subject: mount.cifs: removed magic number for max username in parse_options

Replaced max username in parse_options with the sum of its potential
parts for "domain/user%password" formatted values. Note that forward
slashes still expand to a double back slash in the parse_username
function, though.

Signed-off-by: Scott Lovenberg <scott.lovenberg@gmail.com>
---
 mount.cifs.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

(limited to 'mount.cifs.c')

diff --git a/mount.cifs.c b/mount.cifs.c
index c4eb59a..127e6db 100644
--- a/mount.cifs.c
+++ b/mount.cifs.c
@@ -761,7 +761,11 @@ parse_options(const char *data, struct parsed_mount_info *parsed_info)
 					return EX_USAGE;
 				}
 			} else {
-				if (strnlen(value, 260) >= 260) {
+				/* domain/username%password */
+				const int max = MAX_DOMAIN_SIZE +
+						MAX_USERNAME_SIZE +
+						MOUNT_PASSWD_SIZE + 2;
+				if (strnlen(value, max + 1) >= max + 1) {
 					fprintf(stderr, "username too long\n");
 					return EX_USAGE;
 				}
-- 
cgit v1.2.3