Christoph Hellwig wrote:
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
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Looks good, thanks for the fix.
Checking it in now.
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
--- xfstests/dmapi/src/suite2/src/test_fileattr.c 21 Sep 2007 04:15:06 -0000 1.12
+++ xfstests/dmapi/src/suite2/src/test_fileattr.c 14 Jun 2008 19:12:43 -0000
@@ -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 */
}
/*-----------------------------------------------------*\
|