title: *** glibc detected *** in simple I/O C code
body: <p>The C code is very simple: from a file named <code>file_bib1</code> i get every line of text for further analysis (not yet implemented). This is the code:</p>
  
  <pre><code>int main ()
  {
  FILE * fp;
  char *a;
  int check;
  int end = 0;
  long int size;
  long int start = 0;
  fp = fopen("file_bib1", "r");
  
  while ( end != 1 )
  {
      size = 0;
  
      if (ftell(fp) != 0)
          start = ftell(fp) + 1;
  
      fseek(fp, start, SEEK_SET); 
      while (getc(fp) != '\n')
          size = size + 1;
  
      fseek(fp, start, SEEK_SET);
      a = (char*) malloc(size * sizeof(char));
  
      check = fscanf(fp, "%[^\n]", a);
      if( check == 0)
      {
          fscanf(fp, "%[^\EOF]", a);
          end = 1;
      }
      printf("%s\n", a);
      free(a);
  }
  
  fclose(fp);
  
  return 0;
  }
  </code></pre>
  
  <p>This instead is the content of 'file_bib1' :</p>
  
  <pre class="lang-none prettyprint-override"><code>autore: Di Ciccio      , Antonio; titolo: Manuale di architettura pisana; editore: Palestro; anno: 1990; prestito: t Fri Feb 10 00:00:00 CET 2012; volume: 1345; scaffale: A.west.2;      
  autore : Di Ciccio   , Antonio; titolo: Manuale di architettura pisana; editore: Palestro; anno: 1990; luogo_pubblicazione: Milano; prestito: 10-02-2012; collocazione: B.23.4;descrizione_fisica: 123 p., ill,  23 cm;
  autore: Melis, Antonio Pietro Angelo; autore: Gatto Magnolfi, Gianni;  titolo:Manuale di architettura fiorentina; editore: EQR; anno: 1910; nota:  Copia del Vescovo; collocazione: Z.12.56; luogo_pubblicazione: Firenze; descrizione_fisica: 34 p., cov,  59 cm;
  autore: Kernighan, Brian W.; autore: Ritchie, Dennis M.;  titolo: Il linguaggio C (seconda Edizione); editore: Jackson Libri; anno: 1989; nota: Edizione italiana; collocazione: Z.22.56; luogo_pubblicazione: Milano; descrizione_fisica: 359 p., softcov,  13 cm;
  autore: Kernighan, Brian W.; autore: Pike, Rob;  titolo: Programmazione nella Pratica; editore: Addison-Wesley Longman Italia Editoriale; anno: 1999; nota: Edizione italiana; collocazione: Z.24.56; luogo_pubblicazione: Milano; descrizione_fisica: 294 p., softcov,  13 cm; prestito: 13-07-2012;
  autore: Singh, Jaswinder Pal; autore: Culler, David E.;  autore: Gupta,Anoop; titolo: Parallel Computer Architecture: A Hardware/Software Approach; editore: Morgan Kaufmann; anno: 1999; nota:  Copia M. Fillo; collocazione: QA76 58; luogo_pubblicazione: San Francisco, CA; descrizione_fisica: 1021 p., cov, ill,  23 cm;
  autore: Hennessy, John L.; autore: Patterson, David A.;  titolo: Computer Architecture, Fifth Edition: A Quantitative Approach   ; editore:  Morgan Kaufmann; anno: 2011; nota: ; collocazione: HHH.56; luogo_pubblicazione: San Francisco, CA; descrizione_fisica: 896 p., softcov, 7 1/2 X 9 1/4 inc;
  autore: Luccio, Fabrizio; autore: Pagli, Linda;  autore: Steel, Graham;titolo:Mathematical and Algorithmic Foundations of the Internet ; editore: CRC Press, Taylor and Francis Group; anno: 2011; nota: Chapman &amp; Hall/CRC Applied Algorithms and Data Structures series; collocazione: Z.DDf.56; luogo_pubblicazione: New York; descrizione_fisica: 434 p., softcovcov,  22 cm;
  autore : Di Ciccio   , Antonio; titolo: Manuale di architettura pisana; editore: Palestro; anno: 1990; luogo_pubblicazione: Milano; prestito: 10-0-2012; collocazione: B.23.4;descrizione_fisica: 123 p., ill,  23 cm;
  autore: Melis, Antonio Pietro Angelo; autore: Gatto Magnolfi, Gianni;  titolo:Manuale di architettura fiorentina; editore: EQR; anno: 1910; nota:  Copia del Vescovo; collocazione: Z;12.56; luogo_pubblicazione: Firenze; descrizione_fisica: 34 p., cov,  59 cm;
  autore: Melis, Antonio Pietro Angelo; autore:, Gianni;  titolo:Manuale di architettura fiorentina; editore: EQR; anno: 1910; nota:  Copia del Vescovo; collocazione: Z.12.56; luogo_pubblicazione: Firenze; descrizione_fisica: 34 p., cov,  59 cm;
  autore: Singh, Jaswinder Pal; autore: Culler, David E.;  autore: Gupta,Anoop; titolo: Parallel Computer Architecture: A Hardware/Software Approach; editore: Morgan Kaufmann; 1999; nota:  Copia M. Fillo; collocazione: QA76 58; luogo_pubblicazione: San Francisco, CA; descrizione_fisica: 1021 p., cov, ill,  23 cm; 
  autore: Hennessy, John L.; autore: Patterson, David A.;  titolo: Computer Architecture, Fifth Edition: A Quantitative Approach   ; editore:  Morgan Kaufmann; anno: 2011; nota: ; collocazione: HHH.56; luogo_pubblicazione: San Francisco, CA; descrizione_fisica: 896 p.; softcov, 7 1/2 X 9 1/4 inc; 
  autore: Luccio, Fabrizio; autore: Pagli, Linda;  autore: Steel, Graham;titolo:Mathematical and Algorithmic Foundations of the Internet ; editore: CRC Press, Taylor and Francis Group; anno: 2011; nota: Chapman &amp; Hall/CRC Applied Algorithms and Data Structures series; collocazione: Z.DDf.56; luogo_pubblicazione: New York; descrizione_fisica: 434 p., softcovcov,  22 cm
  autore: Melis, Antonio Pietro Angelo; autore: Gatto Magnolfi, Gianni;  titolo: Manuale di architettura fiorentina; editore: EQR; anno: 2010; nota:  Copia del Vescovo; prestito: f; volume: 5; Scaffale; B.12;
  </code></pre>
  
  <p>Each line ends with <code>\n</code> and, the last one, with <code>EOF</code> as usual.
  When I run the code, I see this error in linux terminal after running well till mid-file</p>
  
  <pre><code>*** glibc detected *** ./prova: double free or corruption (!prev): 0x00000000017e8250 ***
  ======= Backtrace: =========
  /lib/x86_64-linux-gnu/libc.so.6(+0x7e626)[0x7f0049d92626]
  ./prova[0x400880]
  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f0049d3576d]
  ./prova[0x4006a9]
  ======= Memory map: ========
  00400000-00401000 r-xp 00000000 08:01 18770                              /home/arrigo/Desktop/prova
  00600000-00601000 r--p 00000000 08:01 18770                              /home/arrigo/Desktop/prova
  00601000-00602000 rw-p 00001000 08:01 18770                              /home/arrigo/Desktop/prova
  017e8000-01809000 rw-p 00000000 00:00 0                                  [heap]
  7f0049afe000-7f0049b13000 r-xp 00000000 08:01 5697                       /lib/x86_64-linux-gnu/libgcc_s.so.1
  7f0049b13000-7f0049d12000 ---p 00015000 08:01 5697                       /lib/x86_64-linux-gnu/libgcc_s.so.1
  7f0049d12000-7f0049d13000 r--p 00014000 08:01 5697                       /lib/x86_64-linux-gnu/libgcc_s.so.1
  7f0049d13000-7f0049d14000 rw-p 00015000 08:01 5697                       /lib/x86_64-linux-gnu/libgcc_s.so.1
  7f0049d14000-7f0049ec7000 r-xp 00000000 08:01 5676                       /lib/x86_64-linux-gnu/libc-2.15.so
  7f0049ec7000-7f004a0c6000 ---p 001b3000 08:01 5676                       /lib/x86_64-linux-gnu/libc-2.15.so
  7f004a0c6000-7f004a0ca000 r--p 001b2000 08:01 5676                       /lib/x86_64-linux-gnu/libc-2.15.so
  7f004a0ca000-7f004a0cc000 rw-p 001b6000 08:01 5676                       /lib/x86_64-linux-gnu/libc-2.15.so
  7f004a0cc000-7f004a0d1000 rw-p 00000000 00:00 0 
  7f004a0d1000-7f004a0f3000 r-xp 00000000 08:01 5656                       /lib/x86_64-linux-gnu/ld-2.15.so
  7f004a2d2000-7f004a2d5000 rw-p 00000000 00:00 0 
  7f004a2ee000-7f004a2f3000 rw-p 00000000 00:00 0 
  7f004a2f3000-7f004a2f4000 r--p 00022000 08:01 5656                       /lib/x86_64-linux-gnu/ld-2.15.so
  7f004a2f4000-7f004a2f6000 rw-p 00023000 08:01 5656                       /lib/x86_64-linux-gnu/ld-2.15.so
  7fff9a14f000-7fff9a170000 rw-p 00000000 00:00 0                          [stack]
  7fff9a1ff000-7fff9a200000 r-xp 00000000 00:00 0                          [vdso]
  ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
  Aborted
  </code></pre>
  
  <p>Anyone can help me to "translate" this error?</p>
  
  <p>-------------------EDIT----------</p>
  
  <p>ERROR FOUND.
  With some printf in the code, I spotted the error in ' free(a) ' but i can't understand why it generates such an error...</p>
  
  <p>---------EDIT------------</p>
  
  <p>I found the real problem... the incriminated line, where the program fails, ends with a blanck space after <code>;</code> terminator... in some way, <code>free(a)</code> goes mad</p>