don't pass NULL as second parameter to gzerror

Although (as of 1.2.11) zlib checks this parameter before writing to
it, the docs don't promise to keep doing so, so be safe.
This commit is contained in:
David Bremner 2020-04-12 20:00:31 -03:00
parent d50f41c0fd
commit 2c1f783f5f
4 changed files with 10 additions and 5 deletions

View file

@ -21,7 +21,7 @@
#include "notmuch-client.h"
#include "hex-escape.h"
#include "string-util.h"
#include <zlib.h>
#include "zlib-extra.h"
static int
database_dump_config (notmuch_database_t *notmuch, gzFile output)
@ -316,7 +316,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
ret = gzflush (output, Z_FINISH);
if (ret) {
fprintf (stderr, "Error flushing output: %s\n", gzerror (output, NULL));
fprintf (stderr, "Error flushing output: %s\n", gzerror_str (output));
goto DONE;
}
@ -332,7 +332,7 @@ notmuch_database_dump (notmuch_database_t *notmuch,
ret = gzclose_w (output);
if (ret) {
fprintf (stderr, "Error closing %s: %s\n", name_for_error,
gzerror (output, NULL));
gzerror_str (output));
ret = EXIT_FAILURE;
output = NULL;
goto DONE;

View file

@ -450,7 +450,7 @@ notmuch_restore_command (notmuch_config_t *config, int argc, char *argv[])
if (input && gzclose_r (input)) {
fprintf (stderr, "Error closing %s: %s\n",
name_for_error, gzerror (input, NULL));
name_for_error, gzerror_str (input));
ret = EXIT_FAILURE;
}

View file

@ -80,7 +80,7 @@ const char *
gz_error_string (util_status_t status, gzFile file)
{
if (status == UTIL_GZERROR)
return gzerror (file, NULL);
return gzerror_str (file);
else
return util_error_string (status);
}

View file

@ -27,6 +27,11 @@ gz_getline (void *ctx, char **lineptr, ssize_t *bytes_read, gzFile stream);
const char *
gz_error_string (util_status_t status, gzFile stream);
/* Call gzerror with a dummy errno argument, the docs don't promise to
* support the NULL case */
inline const char *
gzerror_str(gzFile file) { int dummy; return gzerror (file, &dummy); }
#ifdef __cplusplus
}
#endif