about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--rt/tst-shm.c15
2 files changed, 13 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a6b0b94f24..926e321aff 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2007-05-18  Ulrich Drepper  <drepper@redhat.com>
 
+	* rt/tst-shm.c: Use fstat64 instead of fstat.
+
 	* sysdeps/unix/sysv/linux/i386/sync_file_range.S: Fix case where
 	__NR_sync_file_range is not defined.
 
diff --git a/rt/tst-shm.c b/rt/tst-shm.c
index 01bf89fa74..5838b0ee1d 100644
--- a/rt/tst-shm.c
+++ b/rt/tst-shm.c
@@ -60,7 +60,7 @@ static void
 worker (int write_now)
 {
   struct timespec ts;
-  struct stat st;
+  struct stat64 st;
   int i;
   int fd = do_open ();
   char *mem;
@@ -68,8 +68,10 @@ worker (int write_now)
   if (fd == -1)
     exit (fd);
 
-  if (fstat (fd, &st) == -1 || st.st_size != 4000)
+  if (fstat64 (fd, &st) == -1)
     error (EXIT_FAILURE, 0, "stat failed");
+  if (st.st_size != 4000)
+    error (EXIT_FAILURE, 0, "size incorrect");
 
   mem = mmap (NULL, 4000, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
   if (mem == NULL)
@@ -131,7 +133,7 @@ do_test (void)
   pid_t pid2;
   int status1;
   int status2;
-  struct stat st;
+  struct stat64 st;
 
   /* Create the shared memory object.  */
   fd = shm_open ("/shm-test", O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600);
@@ -155,11 +157,16 @@ do_test (void)
       return 0;
     }
 
-  if (fstat (fd, &st) == -1 || st.st_size != 4000)
+  if (fstat64 (fd, &st) == -1)
     {
       shm_unlink ("/shm-test");
       error (EXIT_FAILURE, 0, "initial stat failed");
     }
+  if (st.st_size != 4000)
+    {
+      shm_unlink ("/shm-test");
+      error (EXIT_FAILURE, 0, "initial size not correct");
+    }
 
   /* Spawn to processes which will do the work.  */
   pid1 = fork ();