diff --git a/configure.ac b/configure.ac index 33e87c3..492098e 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. -AC_INIT([falco], [1.3.1], [andrewds@usc.edu], +AC_INIT([falco], [1.3.2], [andrewds@usc.edu], [falco], [https://github.com/smithlabcode/falco]) dnl the config.h is not currently #included in the source, and only dnl used to keep command lines short. diff --git a/src/StreamReader.cpp b/src/StreamReader.cpp index 40b5ffc..0db8337 100644 --- a/src/StreamReader.cpp +++ b/src/StreamReader.cpp @@ -692,27 +692,37 @@ FastqReader::~FastqReader() { // Parses fastq gz by reading line by line into the gzbuf bool FastqReader::read_entry(FastqStats &stats, std::size_t &num_bytes_read) { - cur_char = fgets(filebuf, RESERVE_SIZE, fileobj); - - // need to check here if we did not hit eof + cur_char = std::fgets(filebuf, RESERVE_SIZE, fileobj); if (is_eof()) return false; + if (cur_char == nullptr) + throw std::runtime_error("encountered invalid read number: " + + std::to_string(stats.num_reads + 1)); do_read = (stats.num_reads == next_read); read_tile_line(stats); skip_separator(); - cur_char = fgets(filebuf, RESERVE_SIZE, fileobj); + cur_char = std::fgets(filebuf, RESERVE_SIZE, fileobj); + if (cur_char == nullptr) + throw std::runtime_error("encountered invalid read number: " + + std::to_string(stats.num_reads + 1)); read_sequence_line(stats); skip_separator(); - cur_char = fgets(filebuf, RESERVE_SIZE, fileobj); + cur_char = std::fgets(filebuf, RESERVE_SIZE, fileobj); + if (cur_char == nullptr) + throw std::runtime_error("encountered invalid read number: " + + std::to_string(stats.num_reads + 1)); read_fast_forward_line(); skip_separator(); - cur_char = fgets(filebuf, RESERVE_SIZE, fileobj); + cur_char = std::fgets(filebuf, RESERVE_SIZE, fileobj); + if (cur_char == nullptr) + throw std::runtime_error("encountered invalid read number: " + + std::to_string(stats.num_reads + 1)); read_quality_line(stats); skip_separator(); diff --git a/test/md5sum.txt b/test/md5sum.txt index 625e0f3..6adb073 100644 --- a/test/md5sum.txt +++ b/test/md5sum.txt @@ -1,30 +1,30 @@ -6fb32514f5a67b6ac349be0747272495 test_output/SRR10143153_1/fastqc_data.txt -9ad191925d47a57d4f8b12f21ba0a7c3 test_output/SRR10143153_1/summary.txt -62ab46b4ce95b0cd76ecb9e72f7d7e3b test_output/SRR9624732_1/fastqc_data.txt -c94f94bdfbed9b83f156c15ffea84127 test_output/SRR9624732_1/summary.txt -8c080d1466e0b36b33067037f9edd2eb test_output/SRR3897196_2/fastqc_data.txt -80cd130958bcb2219f1e5a07d06a3b6e test_output/SRR3897196_2/summary.txt -16a1ba47dc2252f17ed3b763e6fd921d test_output/SRR10124060/fastqc_data.txt +16e2812d1fb1503288517ad204d1d5f4 test_output/SRR10124060/fastqc_data.txt 776f7d1b53bbed8683de9ca1d2529f1e test_output/SRR10124060/summary.txt -36c5ebf0b8f55a68e8eb9c73a16db8cf test_output/SRR3897196_1/fastqc_data.txt -b736ee95d5c450ef5c0dda31957b6818 test_output/SRR3897196_1/summary.txt -89bd71cceabbe7ba0b2da473eebf2890 test_output/SRR6387347/fastqc_data.txt -a61f65047e76f93300967cf399d044de test_output/SRR6387347/summary.txt -4c5c242c82f151f330ccc8d2b34b9d17 test_output/SRR1772703.lite.1/fastqc_data.txt +d89e0e207fc4d1db79ea982281a920cd test_output/SRR10143153_1/fastqc_data.txt +9ad191925d47a57d4f8b12f21ba0a7c3 test_output/SRR10143153_1/summary.txt +6111e939668687d1b48b0faf3996f4af test_output/SRR10143153_2/fastqc_data.txt +19f1811f324e4c44154f659bb6e22806 test_output/SRR10143153_2/summary.txt +6869c2d401fc68790f03e0f44e70ab2c test_output/SRR1772703.lite.1/fastqc_data.txt ad5727295e7c8de6eb6874837bf1518f test_output/SRR1772703.lite.1/summary.txt -be1c33db6d105fab4f1d35142b7d3b66 test_output/SRR9878537.lite.1/fastqc_data.txt -e5c40997d4993c07e164ee5598c39cf9 test_output/SRR9878537.lite.1/summary.txt -0f0cb18c3d6b15301b00731a3d8694e9 test_output/SRR9624732_2/fastqc_data.txt -fefc5d746f853c14b5e00421ad1ec260 test_output/SRR9624732_2/summary.txt -b65e60aacf2c5aff868b725c77ee181d test_output/SRR1853178_2/fastqc_data.txt -c331d0f7a6aa9d72be41ac531f9ba269 test_output/SRR1853178_2/summary.txt -d86c1775f9bfff98343ceb93a712e63a test_output/SRR1853178_1/fastqc_data.txt +8de8438185e7a4682b4f9def9efbd5b7 test_output/SRR1853178_1/fastqc_data.txt 36df1dcab539ba4ef885239fc8524636 test_output/SRR1853178_1/summary.txt -198d1f368f19dd5b70bd8d63e083ee89 test_output/SRR10143153_2/fastqc_data.txt -19f1811f324e4c44154f659bb6e22806 test_output/SRR10143153_2/summary.txt -ee682b255b1d4824164b6a02878712dd test_output/SRR891268_2/fastqc_data.txt -20a8e50baace4c672622793874a3d7de test_output/SRR891268_2/summary.txt -44fdb71976ac47bd31c230fad841aa9e test_output/SRR891268_1/fastqc_data.txt -69e7d0c53cd2e67117637c408b65333a test_output/SRR891268_1/summary.txt -786295bff1d6169e3ef10dc4970c3a30 test_output/SRR6059706.lite.1/fastqc_data.txt +fc0bfa1e0143ed06dda6999fbf5588aa test_output/SRR1853178_2/fastqc_data.txt +c331d0f7a6aa9d72be41ac531f9ba269 test_output/SRR1853178_2/summary.txt +8dc07f2b597a8866a9df84e3ebde0f38 test_output/SRR3897196_1/fastqc_data.txt +b736ee95d5c450ef5c0dda31957b6818 test_output/SRR3897196_1/summary.txt +21f6b1a9745e4f6fd9f74a3583fb93d7 test_output/SRR3897196_2/fastqc_data.txt +80cd130958bcb2219f1e5a07d06a3b6e test_output/SRR3897196_2/summary.txt +14b2a16b2ded1851605a9c5aaf30153a test_output/SRR6059706.lite.1/fastqc_data.txt e348e4bcc7fc6f05e989ac7858d2b287 test_output/SRR6059706.lite.1/summary.txt +5ffb8fadcd44cb08886e540871ad3267 test_output/SRR6387347/fastqc_data.txt +a61f65047e76f93300967cf399d044de test_output/SRR6387347/summary.txt +6a2d88378dbc961172fbf6dcc7a00339 test_output/SRR891268_1/fastqc_data.txt +69e7d0c53cd2e67117637c408b65333a test_output/SRR891268_1/summary.txt +485b013200cc99259d94aac50da9e48c test_output/SRR891268_2/fastqc_data.txt +20a8e50baace4c672622793874a3d7de test_output/SRR891268_2/summary.txt +35d6d130ca4423eb9b69b5f28129754d test_output/SRR9624732_1/fastqc_data.txt +c94f94bdfbed9b83f156c15ffea84127 test_output/SRR9624732_1/summary.txt +d3795756759b32243b7108ca84d3b5b5 test_output/SRR9624732_2/fastqc_data.txt +fefc5d746f853c14b5e00421ad1ec260 test_output/SRR9624732_2/summary.txt +4a12fd588b54713b5eed0d3ae334a99e test_output/SRR9878537.lite.1/fastqc_data.txt +e5c40997d4993c07e164ee5598c39cf9 test_output/SRR9878537.lite.1/summary.txt