[lockdev-devel] [PATCH 04/10] RedHat patch 4

Ludwig Nussel ludwig.nussel at suse.de
Wed Feb 10 11:45:34 UTC 2010


- allow locking devices in subdirectories (brc#74454)
---
 src/lockdev.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/lockdev.c b/src/lockdev.c
index bcc565f..afaba57 100644
--- a/src/lockdev.c
+++ b/src/lockdev.c
@@ -487,18 +487,19 @@ _dl_check_devname (const char *devname)
 		_debug( 3, "_dl_check_devname(%s) stripped name = %s\n", devname, p);
 	} else {
 		/* Otherwise, strip off everything but the device name. */
-		while ( (m=strrchr( p, '/')) != 0 ) {
-			p = m+1;	/* was pointing to the slash */
+		p += strspn(p, " \t\r\n\v\f\a");        /* skip leading whitespace */
+		if (strncmp(p, DEV_PATH, strlen(DEV_PATH)) == 0) {
+			p += strlen(DEV_PATH);	/* 1st char after slash */
 			_debug( 3, "_dl_check_devname(%s) name = %s\n", devname, p);
 		}
 	}
 	if ( strcmp( p, "tty") == 0 )
 		p = ttyname( 0); /* this terminal, if it exists */
-	if ( ((l=strlen( p)) == 0 ) || ( l > (MAXPATHLEN - strlen(LOCK_PATH)) ))
-	 	return 0;
-	if ( ! (m = malloc( 1 + l)) )
-		return 0;
-	return strcpy( m, p);
+	if (((l = strlen(p)) == 0) || (l > (MAXPATHLEN - strlen(LOCK_PATH))))
+		return NULL;
+	if ((m = malloc(++l)) == NULL)
+		return NULL;
+	return strcpy(m, p);
 }
 
 
-- 
1.6.4.2




More information about the lockdev-devel mailing list