@@ -1505,7 +1505,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
1505
1505
const char * curr_index ;
1506
1506
const char * index_name = NULL , * pack_name = NULL ;
1507
1507
const char * keep_name = NULL , * keep_msg = NULL ;
1508
- char * index_name_buf = NULL , * keep_name_buf = NULL ;
1508
+ struct strbuf index_name_buf = STRBUF_INIT ,
1509
+ keep_name_buf = STRBUF_INIT ;
1509
1510
struct pack_idx_entry * * idx_objects ;
1510
1511
struct pack_idx_option opts ;
1511
1512
unsigned char pack_sha1 [20 ];
@@ -1602,24 +1603,22 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
1602
1603
if (fix_thin_pack && !from_stdin )
1603
1604
die (_ ("--fix-thin cannot be used without --stdin" ));
1604
1605
if (!index_name && pack_name ) {
1605
- int len = strlen ( pack_name ) ;
1606
- if (!ends_with (pack_name , ".pack" ))
1606
+ size_t len ;
1607
+ if (!strip_suffix (pack_name , ".pack" , & len ))
1607
1608
die (_ ("packfile name '%s' does not end with '.pack'" ),
1608
1609
pack_name );
1609
- index_name_buf = xmalloc (len );
1610
- memcpy (index_name_buf , pack_name , len - 5 );
1611
- strcpy (index_name_buf + len - 5 , ".idx" );
1612
- index_name = index_name_buf ;
1610
+ strbuf_add (& index_name_buf , pack_name , len );
1611
+ strbuf_addstr (& index_name_buf , ".idx" );
1612
+ index_name = index_name_buf .buf ;
1613
1613
}
1614
1614
if (keep_msg && !keep_name && pack_name ) {
1615
- int len = strlen ( pack_name ) ;
1616
- if (!ends_with (pack_name , ".pack" ))
1615
+ size_t len ;
1616
+ if (!strip_suffix (pack_name , ".pack" , & len ))
1617
1617
die (_ ("packfile name '%s' does not end with '.pack'" ),
1618
1618
pack_name );
1619
- keep_name_buf = xmalloc (len );
1620
- memcpy (keep_name_buf , pack_name , len - 5 );
1621
- strcpy (keep_name_buf + len - 5 , ".keep" );
1622
- keep_name = keep_name_buf ;
1619
+ strbuf_add (& keep_name_buf , pack_name , len );
1620
+ strbuf_addstr (& keep_name_buf , ".idx" );
1621
+ keep_name = keep_name_buf .buf ;
1623
1622
}
1624
1623
if (verify ) {
1625
1624
if (!index_name )
@@ -1667,8 +1666,8 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
1667
1666
else
1668
1667
close (input_fd );
1669
1668
free (objects );
1670
- free ( index_name_buf );
1671
- free ( keep_name_buf );
1669
+ strbuf_release ( & index_name_buf );
1670
+ strbuf_release ( & keep_name_buf );
1672
1671
if (pack_name == NULL )
1673
1672
free ((void * ) curr_pack );
1674
1673
if (index_name == NULL )
0 commit comments