Commit 91d5fffa authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-28719: compress_write() leaks data_mutex on error

parent fde99e00
...@@ -238,25 +238,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len) ...@@ -238,25 +238,24 @@ compress_write(ds_file_t *file, const uchar *buf, size_t len)
xb_a(threads[i].to_len > 0); xb_a(threads[i].to_len > 0);
if (ds_write(dest_file, "NEWBNEWB", 8) || bool fail = ds_write(dest_file, "NEWBNEWB", 8) ||
write_uint64_le(dest_file, write_uint64_le(dest_file,
comp_file->bytes_processed)) { comp_file->bytes_processed);
msg("compress: write to the destination stream "
"failed.");
return 1;
}
comp_file->bytes_processed += threads[i].from_len; comp_file->bytes_processed += threads[i].from_len;
if (write_uint32_le(dest_file, threads[i].adler) || if (!fail) {
fail = write_uint32_le(dest_file, threads[i].adler) ||
ds_write(dest_file, threads[i].to, ds_write(dest_file, threads[i].to,
threads[i].to_len)) { threads[i].to_len);
}
pthread_mutex_unlock(&threads[i].data_mutex);
if (fail) {
msg("compress: write to the destination stream " msg("compress: write to the destination stream "
"failed."); "failed.");
return 1; return 1;
} }
pthread_mutex_unlock(&threads[i].data_mutex);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment