Package: apt-spy Severity: minor Tags: patch If strstr()!=NULL, it should be sufficient to break out of the inner loop of write_top, and continue with the next i<BESTNUMBER.
By the way, why does main() allocate space for BESTNUMBER+1 elements of best? I suggest allocating only the necessary amount of space, and including the following check after the first loop of decide_best(): if (i>=bestnumber) return; (Conflicts with the renaming of BESTNUMBER to bestnumber.) Justin
diff -ur apt-spy-3.1/parse.c apt-spy-3.1.jp4/parse.c --- apt-spy-3.1/parse.c 2005-07-08 20:48:09.000000000 -0400 +++ apt-spy-3.1.jp4/parse.c 2005-07-08 22:29:14.000000000 -0400 @@ -365,9 +365,12 @@ rewind(infile_p); /* Read in a line... */ - while ((line = next_entry(infile_p)) != NULL) - if (strstr(line, best[i].hostname) != NULL) /* Check for hostname */ + while ((line = next_entry(infile_p)) != NULL) { + if (strstr(line, best[i].hostname) != NULL) { /* Check for hostname */ fputs(line, outfile_p); /* if it's there, write to file */ + break; + } + } if ((ferror(infile_p) != 0) || (ferror(outfile_p) != 0)) return 1;