Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Mar 2014 18:19:49 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r346787 - in head/benchmarks/raidtest: . files
Message-ID:  <201403021819.s22IJn95099908@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav (src committer)
Date: Sun Mar  2 18:19:48 2014
New Revision: 346787
URL: http://svnweb.freebsd.org/changeset/ports/346787
QAT: https://qat.redports.org/buildarchive/r346787/

Log:
  Fix integer type overflow, limiting test range to first 4GB of the media.
  
  Reviewed by:	pjd

Modified:
  head/benchmarks/raidtest/Makefile
  head/benchmarks/raidtest/files/raidtest.c

Modified: head/benchmarks/raidtest/Makefile
==============================================================================
--- head/benchmarks/raidtest/Makefile	Sun Mar  2 18:18:19 2014	(r346786)
+++ head/benchmarks/raidtest/Makefile	Sun Mar  2 18:19:48 2014	(r346787)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	raidtest
-PORTVERSION=	1.2
+PORTVERSION=	1.3
 CATEGORIES=	benchmarks
 MASTER_SITES=	# none
 DISTFILES=	# none

Modified: head/benchmarks/raidtest/files/raidtest.c
==============================================================================
--- head/benchmarks/raidtest/files/raidtest.c	Sun Mar  2 18:18:19 2014	(r346786)
+++ head/benchmarks/raidtest/files/raidtest.c	Sun Mar  2 18:19:48 2014	(r346787)
@@ -113,8 +113,8 @@ write_ioreq(int fd, struct ioreq *iorq)
 static void
 raidtest_genfile(int argc, char *argv[])
 {
-	uintmax_t i, nreqs, mediasize, nsectors, nbytes, nrreqs, nwreqs;
-	unsigned secsize, maxsec;
+	uintmax_t i, nreqs, mediasize, nsectors, nbytes, nrreqs, nwreqs, maxsec;
+	unsigned secsize;
 	const char *file = NULL;
 	struct ioreq iorq;
 	int ch, fd, flags, rdonly, wronly;
@@ -189,7 +189,8 @@ raidtest_genfile(int argc, char *argv[])
 		iorq.iorq_length = gen_size(secsize);
 		/* Generate I/O request offset. */
 		maxsec = nsectors - (iorq.iorq_length / secsize);
-		iorq.iorq_offset = (arc4random() % maxsec) * secsize;
+		iorq.iorq_offset = ((((uintmax_t)arc4random() << 32) |
+		    arc4random()) % maxsec) * secsize;
 		/* Generate I/O request type. */
 		if (rdonly)
 			iorq.iorq_type = IO_TYPE_READ;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403021819.s22IJn95099908>