diff options
Diffstat (limited to 'src/lib/internet.cc')
| -rw-r--r-- | src/lib/internet.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/internet.cc b/src/lib/internet.cc index 943363d1a..c18b3a6e6 100644 --- a/src/lib/internet.cc +++ b/src/lib/internet.cc @@ -185,7 +185,12 @@ get_from_zip_url (string url, string file, bool pasv, bool skip_pasv_ip, functio char buffer[4096]; while (true) { int const N = zip_fread (file_in_zip, buffer, sizeof (buffer)); - checked_fwrite (buffer, N, f, temp_cert.file()); + if (N == -1) { + zip_fclose (file_in_zip); + zip_close (zip); + return optional<string>(_("Could not read from ZIP file")); + } + checked_fwrite (buffer, static_cast<size_t>(N), f, temp_cert.file()); if (N < int (sizeof (buffer))) { break; } |
