Update of /cvsroot/ufraw/ufraw
In directory vz-cvs-2.sog:/tmp/cvs-serv19544
Modified Files:
dcraw.cc dcraw.h
Log Message:
Limit the number of dcraw IO errors to 10, fixing bug #3024370.
Index: dcraw.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v
retrieving revision 1.239
retrieving revision 1.240
diff -u -d -r1.239 -r1.240
--- dcraw.cc 20 Feb 2011 06:00:08 -0000 1.239
+++ dcraw.cc 1 Mar 2011 03:38:35 -0000 1.240
@@ -143,6 +143,7 @@
ifpReadCount = 0;
ifpSize = 0;
ifpStepProgress = 0;
+eofCount = 0;
}
CLASS ~DCRaw()
@@ -168,10 +169,16 @@
size_t CLASS fread(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t num = ::fread(ptr, size, nmemb, stream);
- if ( num != nmemb )
-// Maybe this should be a DCRAW_WARNING
- dcraw_message(DCRAW_VERBOSE, "%s: fread %d != %d\n",
- ifname_display, num, nmemb);
+ if ( num != nmemb ) {
+ if (eofCount < 10)
+ // Maybe this should be a DCRAW_WARNING
+ dcraw_message(DCRAW_VERBOSE, "%s: fread %d != %d\n",
+ ifname_display, num, nmemb);
+ if (eofCount == 10)
+ dcraw_message(DCRAW_VERBOSE, "%s: fread eof reached 10 times\n",
+ ifname_display);
+ eofCount++;
+ }
if (stream==ifp) ifpProgress(size*nmemb);
return num;
}
@@ -186,10 +193,16 @@
char *CLASS fgets(char *s, int size, FILE *stream) {
char *str = ::fgets(s, size, stream);
- if ( str==NULL )
-// Maybe this should be a DCRAW_WARNING
- dcraw_message(DCRAW_VERBOSE, "%s: fgets returned NULL\n",
- ifname_display);
+ if (str == NULL) {
+ if (eofCount < 10)
+ // Maybe this should be a DCRAW_WARNING
+ dcraw_message(DCRAW_VERBOSE, "%s: fgets returned NULL\n",
+ ifname_display);
+ if (eofCount == 10)
+ dcraw_message(DCRAW_VERBOSE, "%s: fgets eof reached 10 times\n",
+ ifname_display);
+ eofCount++;
+ }
if (stream==ifp) ifpProgress(strlen(s));
return str;
}
Index: dcraw.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- dcraw.h 20 Feb 2011 06:15:20 -0000 1.68
+++ dcraw.h 1 Mar 2011 03:38:35 -0000 1.69
@@ -94,6 +94,7 @@
unsigned ifpReadCount;
unsigned ifpSize;
unsigned ifpStepProgress;
+ int eofCount;
#define STEPS 50
void ifpProgress(unsigned readCount);
// Override standard io function for integrity checks and progress report
------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in
Real-Time with Splunk. Collect, index and harness all the fast moving IT data
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business
insights. http://p.sf.net/sfu/splunk-dev2dev
_______________________________________________
ufraw-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs