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

Reply via email to