@@ -78,8 +78,9 @@ int reftable_new_stack(struct reftable_stack **dest, const char *dir,
7878 * dest = NULL ;
7979
8080 reftable_buf_reset (& list_file_name );
81- reftable_buf_addstr (& list_file_name , dir );
82- reftable_buf_addstr (& list_file_name , "/tables.list" );
81+ if ((err = reftable_buf_addstr (& list_file_name , dir )) < 0 ||
82+ (err = reftable_buf_addstr (& list_file_name , "/tables.list" )) < 0 )
83+ goto out ;
8384
8485 p -> list_file = reftable_buf_detach (& list_file_name );
8586 p -> list_fd = -1 ;
@@ -747,12 +748,14 @@ int reftable_addition_commit(struct reftable_addition *add)
747748 goto done ;
748749
749750 for (i = 0 ; i < add -> stack -> merged -> readers_len ; i ++ ) {
750- reftable_buf_addstr (& table_list , add -> stack -> readers [i ]-> name );
751- reftable_buf_addstr (& table_list , "\n" );
751+ if ((err = reftable_buf_addstr (& table_list , add -> stack -> readers [i ]-> name )) < 0 ||
752+ (err = reftable_buf_addstr (& table_list , "\n" )) < 0 )
753+ goto done ;
752754 }
753755 for (i = 0 ; i < add -> new_tables_len ; i ++ ) {
754- reftable_buf_addstr (& table_list , add -> new_tables [i ]);
755- reftable_buf_addstr (& table_list , "\n" );
756+ if ((err = reftable_buf_addstr (& table_list , add -> new_tables [i ])) < 0 ||
757+ (err = reftable_buf_addstr (& table_list , "\n" )) < 0 )
758+ goto done ;
756759 }
757760
758761 err = write_in_full (lock_file_fd , table_list .buf , table_list .len );
@@ -867,7 +870,10 @@ int reftable_addition_add(struct reftable_addition *add,
867870 err = stack_filename (& temp_tab_file_name , add -> stack , next_name .buf );
868871 if (err < 0 )
869872 goto done ;
870- reftable_buf_addstr (& temp_tab_file_name , ".temp.XXXXXX" );
873+
874+ err = reftable_buf_addstr (& temp_tab_file_name , ".temp.XXXXXX" );
875+ if (err < 0 )
876+ goto done ;
871877
872878 tab_file = mks_tempfile (temp_tab_file_name .buf );
873879 if (!tab_file ) {
@@ -914,7 +920,10 @@ int reftable_addition_add(struct reftable_addition *add,
914920 err = format_name (& next_name , wr -> min_update_index , wr -> max_update_index );
915921 if (err < 0 )
916922 goto done ;
917- reftable_buf_addstr (& next_name , ".ref" );
923+
924+ err = reftable_buf_addstr (& next_name , ".ref" );
925+ if (err < 0 )
926+ goto done ;
918927
919928 err = stack_filename (& tab_file_name , add -> stack , next_name .buf );
920929 if (err < 0 )
@@ -975,7 +984,10 @@ static int stack_compact_locked(struct reftable_stack *st,
975984 err = stack_filename (& tab_file_path , st , next_name .buf );
976985 if (err < 0 )
977986 goto done ;
978- reftable_buf_addstr (& tab_file_path , ".temp.XXXXXX" );
987+
988+ err = reftable_buf_addstr (& tab_file_path , ".temp.XXXXXX" );
989+ if (err < 0 )
990+ goto done ;
979991
980992 tab_file = mks_tempfile (tab_file_path .buf );
981993 if (!tab_file ) {
@@ -1404,7 +1416,9 @@ static int stack_compact_range(struct reftable_stack *st,
14041416 if (err < 0 )
14051417 goto done ;
14061418
1407- reftable_buf_addstr (& new_table_name , ".ref" );
1419+ err = reftable_buf_addstr (& new_table_name , ".ref" );
1420+ if (err < 0 )
1421+ goto done ;
14081422
14091423 err = stack_filename (& new_table_path , st , new_table_name .buf );
14101424 if (err < 0 )
@@ -1423,16 +1437,19 @@ static int stack_compact_range(struct reftable_stack *st,
14231437 * simply skip writing it.
14241438 */
14251439 for (i = 0 ; i < first_to_replace ; i ++ ) {
1426- reftable_buf_addstr (& tables_list_buf , names [i ]);
1427- reftable_buf_addstr (& tables_list_buf , "\n" );
1440+ if ((err = reftable_buf_addstr (& tables_list_buf , names [i ])) < 0 ||
1441+ (err = reftable_buf_addstr (& tables_list_buf , "\n" )) < 0 )
1442+ goto done ;
14281443 }
14291444 if (!is_empty_table ) {
1430- reftable_buf_addstr (& tables_list_buf , new_table_name .buf );
1431- reftable_buf_addstr (& tables_list_buf , "\n" );
1445+ if ((err = reftable_buf_addstr (& tables_list_buf , new_table_name .buf )) < 0 ||
1446+ (err = reftable_buf_addstr (& tables_list_buf , "\n" )) < 0 )
1447+ goto done ;
14321448 }
14331449 for (i = last_to_replace + 1 ; names [i ]; i ++ ) {
1434- reftable_buf_addstr (& tables_list_buf , names [i ]);
1435- reftable_buf_addstr (& tables_list_buf , "\n" );
1450+ if ((err = reftable_buf_addstr (& tables_list_buf , names [i ])) < 0 ||
1451+ (err = reftable_buf_addstr (& tables_list_buf , "\n" )) < 0 )
1452+ goto done ;
14361453 }
14371454
14381455 err = write_in_full (get_lock_file_fd (& tables_list_lock ),
0 commit comments