Git fork

Merge branch 'ly/reftable-writer-leakfix'

Leakfix.

* ly/reftable-writer-leakfix:
reftable/writer: fix memory leak when `writer_index_hash()` fails
reftable/writer: fix memory leak when `padded_write()` fails

+6 -2
+6 -2
reftable/writer.c
··· 57 return -1; 58 59 n = w->write(w->write_arg, zeroed, w->pending_padding); 60 - if (n < 0) 61 return n; 62 63 w->pending_padding = 0; 64 reftable_free(zeroed); ··· 256 257 reftable_buf_reset(&key->hash); 258 err = reftable_buf_add(&key->hash, hash->buf, hash->len); 259 - if (err < 0) 260 return err; 261 tree_insert(&w->obj_index_tree, key, 262 &obj_index_tree_node_compare); 263 } else {
··· 57 return -1; 58 59 n = w->write(w->write_arg, zeroed, w->pending_padding); 60 + if (n < 0) { 61 + reftable_free(zeroed); 62 return n; 63 + } 64 65 w->pending_padding = 0; 66 reftable_free(zeroed); ··· 258 259 reftable_buf_reset(&key->hash); 260 err = reftable_buf_add(&key->hash, hash->buf, hash->len); 261 + if (err < 0) { 262 + reftable_free(key); 263 return err; 264 + } 265 tree_insert(&w->obj_index_tree, key, 266 &obj_index_tree_node_compare); 267 } else {