public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP]  [PATCH] fsync02: fix error of overflow from MUL
@ 2011-01-19  8:19 Peng Haitao
  2011-01-19  8:47 ` Garrett Cooper
  0 siblings, 1 reply; 3+ messages in thread
From: Peng Haitao @ 2011-01-19  8:19 UTC (permalink / raw)
  To: yanegomi; +Cc: ltp-list

Hi Garrett,

If the third argument is SEEK_SET of function fsync(), offset can not be
negative. But when overflow from MUL, the offset is negative.

Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>

---
 testcases/kernel/syscalls/fsync/fsync02.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/testcases/kernel/syscalls/fsync/fsync02.c b/testcases/kernel/syscalls/fsync/fsync02.c
index 213eac3..64bb012 100644
--- a/testcases/kernel/syscalls/fsync/fsync02.c
+++ b/testcases/kernel/syscalls/fsync/fsync02.c
@@ -102,7 +102,7 @@ int main(int ac, char **av)
 		}
 
 		for (i = 1; i <= data_blocks; i++) {
-			offset = (i * BLOCKSIZE * max_block) / data_blocks - BUFSIZ;
+			offset = (BLOCKSIZE * max_block) / data_blocks * i - BUFSIZ;
 			if ((offsetret = lseek(fd, offset, SEEK_SET)) != offset)
 				tst_brkm(TBROK|TERRNO, cleanup, "lseek failed: %ld, %ld", offsetret, offset);
 			if ((ret = write(fd, pbuf, BUFSIZ)) != BUFSIZ)
@@ -197,4 +197,4 @@ void cleanup()
 
 	tst_rmdir();
 
-}
\ No newline at end of file
+}
-- 
1.7.3.1

-- 
Best Regards,
Peng Haitao


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [LTP] [PATCH] fsync02: fix error of overflow from MUL
  2011-01-19  8:19 [LTP] [PATCH] fsync02: fix error of overflow from MUL Peng Haitao
@ 2011-01-19  8:47 ` Garrett Cooper
  2011-01-19  9:09   ` Peng Haitao
  0 siblings, 1 reply; 3+ messages in thread
From: Garrett Cooper @ 2011-01-19  8:47 UTC (permalink / raw)
  To: Peng Haitao; +Cc: ltp-list

[-- Attachment #1: Type: text/plain, Size: 2528 bytes --]

On Wed, Jan 19, 2011 at 12:19 AM, Peng Haitao <penght@cn.fujitsu.com> wrote:
> Hi Garrett,
>
> If the third argument is SEEK_SET of function fsync(), offset can not be
> negative. But when overflow from MUL, the offset is negative.
>
> Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
>
> ---
>  testcases/kernel/syscalls/fsync/fsync02.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/fsync/fsync02.c b/testcases/kernel/syscalls/fsync/fsync02.c
> index 213eac3..64bb012 100644
> --- a/testcases/kernel/syscalls/fsync/fsync02.c
> +++ b/testcases/kernel/syscalls/fsync/fsync02.c
> @@ -102,7 +102,7 @@ int main(int ac, char **av)
>                }
>
>                for (i = 1; i <= data_blocks; i++) {
> -                       offset = (i * BLOCKSIZE * max_block) / data_blocks - BUFSIZ;
> +                       offset = (BLOCKSIZE * max_block) / data_blocks * i - BUFSIZ;
>                        if ((offsetret = lseek(fd, offset, SEEK_SET)) != offset)
>                                tst_brkm(TBROK|TERRNO, cleanup, "lseek failed: %ld, %ld", offsetret, offset);
>                        if ((ret = write(fd, pbuf, BUFSIZ)) != BUFSIZ)
> @@ -197,4 +197,4 @@ void cleanup()
>
>        tst_rmdir();
>
> -}
> \ No newline at end of file
> +}
> --
> 1.7.3.1
>
> --
> Best Regards,
> Peng Haitao
>
>

    How about the following item?
    Please try the attached patch over the following -- it's just
there for review.
Thanks,
-Garrett

$ git diff testcases/kernel/syscalls/fsync/fsync02.c
diff --git a/testcases/kernel/syscalls/fsync/fsync02.c
b/testcases/kernel/syscalls/fsync/fsync02.c
index 213eac3..6227a84 100644
--- a/testcases/kernel/syscalls/fsync/fsync02.c
+++ b/testcases/kernel/syscalls/fsync/fsync02.c
@@ -102,7 +102,8 @@ int main(int ac, char **av)
                }

                for (i = 1; i <= data_blocks; i++) {
-                       offset = (i * BLOCKSIZE * max_block) /
data_blocks - BUFSIZ;
+                       offset = i * ((BLOCKSIZE * max_block) / data_blocks);
+                       offset -= BUFSIZ;
                        if ((offsetret = lseek(fd, offset, SEEK_SET)) != offset)
                                tst_brkm(TBROK|TERRNO, cleanup, "lseek
failed: %ld, %ld", offsetret, offset);
                        if ((ret = write(fd, pbuf, BUFSIZ)) != BUFSIZ)
@@ -197,4 +198,4 @@ void cleanup()

        tst_rmdir();

-}
\ No newline at end of file
+}

[-- Attachment #2: 0001-Sort-multipliers-to-avoid-accidental-overflow.patch --]
[-- Type: text/x-patch, Size: 1688 bytes --]

From 1a1478a4162cdf2966077101911987fd22300bde Mon Sep 17 00:00:00 2001
From: Garrett Cooper <yanegomi@gmail.com>
Date: Wed, 19 Jan 2011 00:42:31 -0800
Subject: [PATCH] Sort multipliers to avoid accidental overflow.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.3.5"

This is a multi-part message in MIME format.
--------------1.7.3.5
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


Signed-off-by: Peng Haitao <penght@cn.fujitsu.com>
Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
---
 testcases/kernel/syscalls/fsync/fsync02.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)


--------------1.7.3.5
Content-Type: text/x-patch; name="0001-Sort-multipliers-to-avoid-accidental-overflow.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Sort-multipliers-to-avoid-accidental-overflow.patch"

diff --git a/testcases/kernel/syscalls/fsync/fsync02.c b/testcases/kernel/syscalls/fsync/fsync02.c
index 213eac3..6227a84 100644
--- a/testcases/kernel/syscalls/fsync/fsync02.c
+++ b/testcases/kernel/syscalls/fsync/fsync02.c
@@ -102,7 +102,8 @@ int main(int ac, char **av)
 		}
 
 		for (i = 1; i <= data_blocks; i++) {
-			offset = (i * BLOCKSIZE * max_block) / data_blocks - BUFSIZ;
+			offset = i * ((BLOCKSIZE * max_block) / data_blocks);
+			offset -= BUFSIZ;
 			if ((offsetret = lseek(fd, offset, SEEK_SET)) != offset)
 				tst_brkm(TBROK|TERRNO, cleanup, "lseek failed: %ld, %ld", offsetret, offset);
 			if ((ret = write(fd, pbuf, BUFSIZ)) != BUFSIZ)
@@ -197,4 +198,4 @@ void cleanup()
 
 	tst_rmdir();
 
-}
\ No newline at end of file
+}

--------------1.7.3.5--



[-- Attachment #3: Type: text/plain, Size: 372 bytes --]

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl

[-- Attachment #4: Type: text/plain, Size: 155 bytes --]

_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [LTP] [PATCH] fsync02: fix error of overflow from MUL
  2011-01-19  8:47 ` Garrett Cooper
@ 2011-01-19  9:09   ` Peng Haitao
  0 siblings, 0 replies; 3+ messages in thread
From: Peng Haitao @ 2011-01-19  9:09 UTC (permalink / raw)
  To: Garrett Cooper; +Cc: ltp-list

Hi Garrett,

Garrett Cooper said the following on 2011-1-19 16:47:
> 
>     How about the following item?
>     Please try the attached patch over the following -- it's just
> there for review.

  The patch is OK, thanks:)

-- 
Best Regards,
Peng Haitao

> Thanks,
> -Garrett
> 
> $ git diff testcases/kernel/syscalls/fsync/fsync02.c
> diff --git a/testcases/kernel/syscalls/fsync/fsync02.c
> b/testcases/kernel/syscalls/fsync/fsync02.c
> index 213eac3..6227a84 100644
> --- a/testcases/kernel/syscalls/fsync/fsync02.c
> +++ b/testcases/kernel/syscalls/fsync/fsync02.c
> @@ -102,7 +102,8 @@ int main(int ac, char **av)
>                 }
> 
>                 for (i = 1; i <= data_blocks; i++) {
> -                       offset = (i * BLOCKSIZE * max_block) /
> data_blocks - BUFSIZ;
> +                       offset = i * ((BLOCKSIZE * max_block) / data_blocks);
> +                       offset -= BUFSIZ;
>                         if ((offsetret = lseek(fd, offset, SEEK_SET)) != offset)
>                                 tst_brkm(TBROK|TERRNO, cleanup, "lseek
> failed: %ld, %ld", offsetret, offset);
>                         if ((ret = write(fd, pbuf, BUFSIZ)) != BUFSIZ)
> @@ -197,4 +198,4 @@ void cleanup()
> 
>         tst_rmdir();
> 
> -}
> \ No newline at end of file
> +}


------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-01-19  9:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-19  8:19 [LTP] [PATCH] fsync02: fix error of overflow from MUL Peng Haitao
2011-01-19  8:47 ` Garrett Cooper
2011-01-19  9:09   ` Peng Haitao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox