[sane-devel] genesys_gl841.c: infinite loops

Stefan Lucke stefan at lucke.in-berlin.de
Wed Feb 6 18:41:12 UTC 2008


Hi,
I guess there are 3 possibilities for infinite loops.
Attached patch fixes this and adjusts loop threshold
to given comments..

-- 
Stefan Lucke
-------------- next part --------------
Index: backend/genesys_gl841.c
===================================================================
RCS file: /cvsroot/sane/sane-backends/backend/genesys_gl841.c,v
retrieving revision 1.19
diff -U 3 -r1.19 genesys_gl841.c
--- backend/genesys_gl841.c	3 Feb 2008 10:34:20 -0000	1.19
+++ backend/genesys_gl841.c	6 Feb 2008 18:29:28 -0000
@@ -3434,7 +3438,7 @@
       return status;
     }
 
-  while (loop < 3)		/* do not wait longer then 30 seconds */
+  while (loop < 300)		/* do not wait longer then 30 seconds */
   {
       status = sanei_genesys_get_status (dev, &val);
       if (status != SANE_STATUS_GOOD)
@@ -3452,6 +3456,7 @@
 	  return SANE_STATUS_GOOD;
       }
       usleep (100000);	/* sleep 100 ms */
+      ++loop;
   }
 
   /* when we come here then the scanner needed too much time for this, so we better stop the motor */
@@ -3579,7 +3584,7 @@
     {
       int loop = 0;
 
-      while (loop < 3)		/* do not wait longer then 30 seconds */
+      while (loop < 300)		/* do not wait longer then 30 seconds */
 	{
 	  status = sanei_genesys_get_status (dev, &val);
 	  if (status != SANE_STATUS_GOOD)
@@ -3598,6 +3603,7 @@
 	      return SANE_STATUS_GOOD;
 	    }
 	  usleep (100000);	/* sleep 100 ms */
+	  ++loop;
 	}
 
       /* when we come here then the scanner needed too much time for this, so we better stop the motor */
@@ -3729,6 +3735,7 @@
 		}
 	    }
 	  usleep (100000);
+	  ++loop;
 	}
     } else {
 	DBG (DBG_info,


More information about the sane-devel mailing list