@@ -946,10 +946,12 @@ static void unkeep_all_packs(void)
946
946
947
947
static void end_packfile (void )
948
948
{
949
- struct packed_git * old_p = pack_data , * new_p ;
949
+ if (!pack_data )
950
+ return ;
950
951
951
952
clear_delta_base_cache ();
952
953
if (object_count ) {
954
+ struct packed_git * new_p ;
953
955
unsigned char cur_pack_sha1 [20 ];
954
956
char * idx_name ;
955
957
int i ;
@@ -991,10 +993,11 @@ static void end_packfile(void)
991
993
pack_id ++ ;
992
994
}
993
995
else {
994
- close (old_p -> pack_fd );
995
- unlink_or_warn (old_p -> pack_name );
996
+ close (pack_data -> pack_fd );
997
+ unlink_or_warn (pack_data -> pack_name );
996
998
}
997
- free (old_p );
999
+ free (pack_data );
1000
+ pack_data = NULL ;
998
1001
999
1002
/* We can't carry a delta across packfiles. */
1000
1003
strbuf_release (& last_blob .data );
@@ -1731,14 +1734,16 @@ static void dump_tags(void)
1731
1734
static const char * msg = "fast-import" ;
1732
1735
struct tag * t ;
1733
1736
struct ref_lock * lock ;
1734
- char ref_name [ PATH_MAX ] ;
1737
+ struct strbuf ref_name = STRBUF_INIT ;
1735
1738
1736
1739
for (t = first_tag ; t ; t = t -> next_tag ) {
1737
- sprintf (ref_name , "tags/%s" , t -> name );
1738
- lock = lock_ref_sha1 (ref_name , NULL );
1740
+ strbuf_reset (& ref_name );
1741
+ strbuf_addf (& ref_name , "tags/%s" , t -> name );
1742
+ lock = lock_ref_sha1 (ref_name .buf , NULL );
1739
1743
if (!lock || write_ref_sha1 (lock , t -> sha1 , msg ) < 0 )
1740
- failure |= error ("Unable to update %s" , ref_name );
1744
+ failure |= error ("Unable to update %s" , ref_name . buf );
1741
1745
}
1746
+ strbuf_release (& ref_name );
1742
1747
}
1743
1748
1744
1749
static void dump_marks_helper (FILE * f ,
0 commit comments