Skip to contentSkip to conversation

fix XFSQA 144

PATCH In review Christoph Hellwig 2 participants 2 messages Jun 14, 2008 – Jun 18, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix XFSQA 144

Two really dumb bugs:

- "foo & 0x3FFFFFFFFFFFF" doesn't cap at 1TB, but rather at more than two magnitudes larger than that. That gets us EFBIG with typical 32bit XFS setups.
- the command array can easily overflow and thus let the test fail

Index: xfstests/dmapi/src/suite2/src/test_fileattr.c
===================================================================
RCS file: /cvs/xfs-cmds/xfstests/dmapi/src/suite2/src/test_fileattr.c,v retrieving revision 1.12

dmapi/src/suite2/src/test_fileattr.c +2 -2
diff -u -p -r1.12 test_fileattr.c
@@ -160,7 +160,7 @@ main(
 	char		*ls_path;
 	char		*pathname;
 	char            test_file[100];
-	char            command[100];
+	char            command[200];
 	int		num_files=50;
 	dm_stat_t	*stat_arr;
 	dm_stat_t	dmstat;
@@ -244,7 +244,7 @@ main(
 	  stat_arr[i].dt_uid=(uid_t)(rand()+rand()*0x10000);
 	  stat_arr[i].dt_gid=(gid_t)(rand()+rand()*0x10000);
 	  stat_arr[i].dt_mode=(mode_t)((rand()%4096)+32768);
-          stat_arr[i].dt_size=((dm_off_t)(rand()+rand()*0x10000)) & 0x3FFFFFFFFFFFF; /* 1 TB max */
+          stat_arr[i].dt_size=((dm_off_t)(rand()+rand()*0x10000)) & 0x1FFFFFFFFFFULL; /* 1 TB max */
 	}	
 
 	/*-----------------------------------------------------*\
#1 lore raw
Quoted 9 lines · Christoph Hellwig

Two really dumb bugs:

- "foo & 0x3FFFFFFFFFFFF" doesn't cap at 1TB, but rather at more than two magnitudes larger than that. That gets us EFBIG with typical 32bit XFS setups.
- the command array can easily overflow and thus let the test fail

Looks good, thanks for the fix.
Checking it in now.

Quoted 28 lines

Index: xfstests/dmapi/src/suite2/src/test_fileattr.c
===================================================================
RCS file: /cvs/xfs-cmds/xfstests/dmapi/src/suite2/src/test_fileattr.c,v retrieving revision 1.12
diff -u -p -r1.12 test_fileattr.c

dmapi/src/suite2/src/test_fileattr.c +2 -2
@@ -160,7 +160,7 @@ main(
 	char		*ls_path;
 	char		*pathname;
 	char            test_file[100];
-	char            command[100];
+	char            command[200];
 	int		num_files=50;
 	dm_stat_t	*stat_arr;
 	dm_stat_t	dmstat;
@@ -244,7 +244,7 @@ main(
 	  stat_arr[i].dt_uid=(uid_t)(rand()+rand()*0x10000);
 	  stat_arr[i].dt_gid=(gid_t)(rand()+rand()*0x10000);
 	  stat_arr[i].dt_mode=(mode_t)((rand()%4096)+32768);
-          stat_arr[i].dt_size=((dm_off_t)(rand()+rand()*0x10000)) & 0x3FFFFFFFFFFFF; /* 1 TB max */
+          stat_arr[i].dt_size=((dm_off_t)(rand()+rand()*0x10000)) & 0x1FFFFFFFFFFULL; /* 1 TB max */
 	}	
 
 	/*-----------------------------------------------------*\