_fix_fgets_warning
authorDebian BOINC Maintainers <pkg-boinc-devel@lists.alioth.debian.org>
Tue, 30 Sep 2014 12:49:40 +0000 (12:49 +0000)
committerGianfranco Costamagna <costamagnagianfranco@yahoo.it>
Tue, 30 Sep 2014 12:49:40 +0000 (12:49 +0000)
Gbp-Pq: Name 210_fix_fgets_warning.patch

client/seti_header.cpp

index 79c9a8026aa0fb51fc465222b287e745a7d1b044..56afbc429369314a988325e3213b2012852e8a69 100644 (file)
@@ -191,8 +191,9 @@ SETI_WU_INFO swi;
 static workunit *wu;
 
 int seti_parse_wu_header(FILE* f) {
-  char buf[256];
+  char buf[2560];
   int found=0;
+  buf[0]=0;
 #ifdef USE_MANUAL_CALLSTACK
   call_stack.enter("seti_parse_wu_header(FILE *)");
 #endif /* USE_MANUAL_CALLSTACK */
@@ -207,13 +208,14 @@ int seti_parse_wu_header(FILE* f) {
   //swi.fft_len=2048;
   //swi.ifft_len=8;
 
+  char *fgets_return_value;
   do {
-    fgets(buf, 256, f);
-  } while (!feof(f) && !xml_match_tag(buf,"<workunit_header")) ;
+    fgets_return_value=fgets(buf, sizeof(buf), f);
+  } while (!feof(f) && fgets_return_value && !xml_match_tag(buf,"<workunit_header")) ;
  
   buffer+=buf;
 
-  while (fgets(buf, 256, f) && !xml_match_tag(buf,"</workunit_header")) {
+  while (fgets(buf, sizeof(buf), f) && !xml_match_tag(buf,"</workunit_header")) {
     buffer+=buf;
   }
   buffer+=buf;
@@ -237,8 +239,9 @@ int seti_parse_wu_header(FILE* f, SETI_WU_INFO &swi) {
 #ifdef USE_MANUAL_CALLSTACK
   call_stack.enter("seti_parse_wu_header(FILE *, SETI_WU_INFO &)");
 #endif /* USE_MANUAL_CALLSTACK */
-  char buf[256];
+  char buf[2560];
   int found=0;
+  buf[0]=0;
   
   std::string buffer("");
   buffer.reserve(10*1024);
@@ -249,13 +252,14 @@ int seti_parse_wu_header(FILE* f, SETI_WU_INFO &swi) {
   //swi.fft_len=2048;
   //swi.ifft_len=8;
 
+  char *fgets_return_value;
   do {
-    fgets(buf, 256, f);
-  } while (!feof(f) && !xml_match_tag(buf,"<workunit_header")) ;
+    fgets_return_value=fgets_return_value=fgets(buf, sizeof(buf), f);
+  } while (!feof(f) && fgets_return_value && !xml_match_tag(buf,"<workunit_header")) ;
   
   buffer+=buf;
 
-  while (fgets(buf, 256, f) && !xml_match_tag(buf,"</workunit_header")) {
+  while (fgets(buf, sizeof(buf), f) && !xml_match_tag(buf,"</workunit_header")) {
     buffer+=buf;
   }
   buffer+=buf;