@@ -942,7 +942,7 @@ struct write_transaction_table_arg {
942
942
size_t updates_nr ;
943
943
size_t updates_alloc ;
944
944
size_t updates_expected ;
945
- unsigned int max_index ;
945
+ uint64_t max_index ;
946
946
};
947
947
948
948
struct reftable_transaction_data {
@@ -1444,7 +1444,9 @@ static int write_transaction_table(struct reftable_writer *writer, void *cb_data
1444
1444
* multiple entries. Each entry will contain a different update_index,
1445
1445
* so set the limits accordingly.
1446
1446
*/
1447
- reftable_writer_set_limits (writer , ts , ts + arg -> max_index );
1447
+ ret = reftable_writer_set_limits (writer , ts , ts + arg -> max_index );
1448
+ if (ret < 0 )
1449
+ goto done ;
1448
1450
1449
1451
for (i = 0 ; i < arg -> updates_nr ; i ++ ) {
1450
1452
struct reftable_transaction_update * tx_update = & arg -> updates [i ];
@@ -1629,6 +1631,9 @@ static int reftable_be_transaction_finish(struct ref_store *ref_store UNUSED,
1629
1631
struct reftable_transaction_data * tx_data = transaction -> backend_data ;
1630
1632
int ret = 0 ;
1631
1633
1634
+ if (tx_data -> args )
1635
+ tx_data -> args -> max_index = transaction -> max_index ;
1636
+
1632
1637
for (size_t i = 0 ; i < tx_data -> args_nr ; i ++ ) {
1633
1638
tx_data -> args [i ].max_index = transaction -> max_index ;
1634
1639
@@ -1766,7 +1771,9 @@ static int write_copy_table(struct reftable_writer *writer, void *cb_data)
1766
1771
deletion_ts = creation_ts = reftable_stack_next_update_index (arg -> be -> stack );
1767
1772
if (arg -> delete_old )
1768
1773
creation_ts ++ ;
1769
- reftable_writer_set_limits (writer , deletion_ts , creation_ts );
1774
+ ret = reftable_writer_set_limits (writer , deletion_ts , creation_ts );
1775
+ if (ret < 0 )
1776
+ goto done ;
1770
1777
1771
1778
/*
1772
1779
* Add the new reference. If this is a rename then we also delete the
@@ -2298,7 +2305,9 @@ static int write_reflog_existence_table(struct reftable_writer *writer,
2298
2305
if (ret <= 0 )
2299
2306
goto done ;
2300
2307
2301
- reftable_writer_set_limits (writer , ts , ts );
2308
+ ret = reftable_writer_set_limits (writer , ts , ts );
2309
+ if (ret < 0 )
2310
+ goto done ;
2302
2311
2303
2312
/*
2304
2313
* The existence entry has both old and new object ID set to the
@@ -2357,7 +2366,9 @@ static int write_reflog_delete_table(struct reftable_writer *writer, void *cb_da
2357
2366
uint64_t ts = reftable_stack_next_update_index (arg -> stack );
2358
2367
int ret ;
2359
2368
2360
- reftable_writer_set_limits (writer , ts , ts );
2369
+ ret = reftable_writer_set_limits (writer , ts , ts );
2370
+ if (ret < 0 )
2371
+ goto out ;
2361
2372
2362
2373
ret = reftable_stack_init_log_iterator (arg -> stack , & it );
2363
2374
if (ret < 0 )
@@ -2434,7 +2445,9 @@ static int write_reflog_expiry_table(struct reftable_writer *writer, void *cb_da
2434
2445
if (arg -> records [i ].value_type == REFTABLE_LOG_UPDATE )
2435
2446
live_records ++ ;
2436
2447
2437
- reftable_writer_set_limits (writer , ts , ts );
2448
+ ret = reftable_writer_set_limits (writer , ts , ts );
2449
+ if (ret < 0 )
2450
+ return ret ;
2438
2451
2439
2452
if (!is_null_oid (& arg -> update_oid )) {
2440
2453
struct reftable_ref_record ref = {0 };
0 commit comments