Revision: 48504
http://brlcad.svn.sourceforge.net/brlcad/?rev=48504&view=rev
Author: bob1961
Date: 2012-01-12 15:37:02 +0000 (Thu, 12 Jan 2012)
Log Message:
-----------
run 6, CID 1926, tainted scalar. Check upper and lower bound of loops. Also
change loops and r to size_t instead of double.
Modified Paths:
--------------
brlcad/trunk/src/irprep/shapefact.c
Modified: brlcad/trunk/src/irprep/shapefact.c
===================================================================
--- brlcad/trunk/src/irprep/shapefact.c 2012-01-12 15:35:46 UTC (rev 48503)
+++ brlcad/trunk/src/irprep/shapefact.c 2012-01-12 15:37:02 UTC (rev 48504)
@@ -117,8 +117,8 @@
int ians; /* Answer of question. */
double strtpt[3]; /* Starting point of ray. */
double strtdir[3]; /* Starting direction. */
- double loops; /* Number of rays fired. */
- double r; /* Variable in loops. */
+ size_t loops; /* Number of rays fired. */
+ size_t r; /* Variable in loops. */
int i, j, k; /* Variable in loops. */
long seed; /* Initial seed for random number generator. */
double denom; /* Denominator. */
@@ -213,10 +213,13 @@
/* Find number of rays to be fired. */
(void)fprintf(stderr, "Enter number of rays to be fired. ");
(void)fflush(stderr);
- ret = scanf("%lf", &loops);
+ ret = scanf("%llu", (unsigned long long *)&loops);
if (ret == 0)
perror("scanf");
+ if (loops < 1 || loops > UINT32_MAX)
+ perror("scanf");
+
/* Set seed for random number generator. */
seed = 1;
(void)fprintf(stderr, "Do you wish to enter your own seed (0) or ");
@@ -530,8 +533,8 @@
if (EQUAL(r, (dump - 1.0)))
{
- (void)printf("%f rays have been fired in forward direction.\n",
- (r+1));
+ (void)printf("%llu rays have been fired in forward
direction.\n",
+ (unsigned long long)(r+1));
(void)fflush(stdout);
if (idump == 1)
{
@@ -569,7 +572,7 @@
/*
* info[i].engarea = info[i].allvrays * areabs / loops / 2.;
*/
- info[i].engarea = info[i].allvrays * areabs / loops;
+ info[i].engarea = info[i].allvrays * areabs / (double)loops;
/* Put area into square meters. */
info[i].engarea *= 1.e-6;
@@ -666,7 +669,7 @@
if (itype == 0)
{
fp = fopen(outfile, "wb");
- (void)fprintf(fp, "Number of forward rays fired: %f\n\n", loops);
+ (void)fprintf(fp, "Number of forward rays fired: %llu\n\n",
(unsigned long long)loops);
(void)fflush(fp);
/* Print out structure. */
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits