process failed. It occured when archive_write_close() was called
after an opening filter process failed.
int r;
if (length == 0)
return(ARCHIVE_OK);
+ if (f->write == NULL)
+ /* If unset, a fatal error has already ocuured, so this filter
+ * didn't open. We cannot write anything. */
+ return(ARCHIVE_FATAL);
r = (f->write)(f, buff, length);
f->bytes_written += length;
return (r);
(*a->client_closer)(&a->archive, a->client_data);
free(state->buffer);
free(state);
+ /* Clear the close handler myself not to be called again. */
+ f->close = NULL;
a->client_data = NULL;
return (ret);
}