@@ -516,7 +516,6 @@ struct rpc_state {
516
516
int in ;
517
517
int out ;
518
518
int any_written ;
519
- struct strbuf result ;
520
519
unsigned gzip_request : 1 ;
521
520
unsigned initial_buffer : 1 ;
522
521
};
@@ -828,7 +827,8 @@ static int post_rpc(struct rpc_state *rpc)
828
827
}
829
828
830
829
static int rpc_service (struct rpc_state * rpc , struct discovery * heads ,
831
- const char * * client_argv , const struct strbuf * preamble )
830
+ const char * * client_argv , const struct strbuf * preamble ,
831
+ struct strbuf * rpc_result )
832
832
{
833
833
const char * svc = rpc -> service_name ;
834
834
struct strbuf buf = STRBUF_INIT ;
@@ -849,7 +849,6 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
849
849
rpc -> buf = xmalloc (rpc -> alloc );
850
850
rpc -> in = client .in ;
851
851
rpc -> out = client .out ;
852
- strbuf_init (& rpc -> result , 0 );
853
852
854
853
strbuf_addf (& buf , "%s%s" , url .buf , svc );
855
854
rpc -> service_url = strbuf_detach (& buf , NULL );
@@ -877,7 +876,7 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads,
877
876
close (client .in );
878
877
client .in = -1 ;
879
878
if (!err ) {
880
- strbuf_read (& rpc -> result , client .out , 0 );
879
+ strbuf_read (rpc_result , client .out , 0 );
881
880
} else {
882
881
char buf [4096 ];
883
882
for (;;)
@@ -930,6 +929,7 @@ static int fetch_git(struct discovery *heads,
930
929
struct strbuf preamble = STRBUF_INIT ;
931
930
int i , err ;
932
931
struct argv_array args = ARGV_ARRAY_INIT ;
932
+ struct strbuf rpc_result = STRBUF_INIT ;
933
933
934
934
argv_array_pushl (& args , "fetch-pack" , "--stateless-rpc" ,
935
935
"--stdin" , "--lock-pack" , NULL );
@@ -977,10 +977,10 @@ static int fetch_git(struct discovery *heads,
977
977
rpc .service_name = "git-upload-pack" ,
978
978
rpc .gzip_request = 1 ;
979
979
980
- err = rpc_service (& rpc , heads , args .argv , & preamble );
981
- if (rpc . result .len )
982
- write_or_die (1 , rpc . result . buf , rpc . result .len );
983
- strbuf_release (& rpc . result );
980
+ err = rpc_service (& rpc , heads , args .argv , & preamble , & rpc_result );
981
+ if (rpc_result .len )
982
+ write_or_die (1 , rpc_result . buf , rpc_result .len );
983
+ strbuf_release (& rpc_result );
984
984
strbuf_release (& preamble );
985
985
argv_array_clear (& args );
986
986
return err ;
@@ -1075,6 +1075,7 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
1075
1075
struct argv_array args ;
1076
1076
struct string_list_item * cas_option ;
1077
1077
struct strbuf preamble = STRBUF_INIT ;
1078
+ struct strbuf rpc_result = STRBUF_INIT ;
1078
1079
1079
1080
argv_array_init (& args );
1080
1081
argv_array_pushl (& args , "send-pack" , "--stateless-rpc" , "--helper-status" ,
@@ -1108,10 +1109,10 @@ static int push_git(struct discovery *heads, int nr_spec, char **specs)
1108
1109
memset (& rpc , 0 , sizeof (rpc ));
1109
1110
rpc .service_name = "git-receive-pack" ,
1110
1111
1111
- err = rpc_service (& rpc , heads , args .argv , & preamble );
1112
- if (rpc . result .len )
1113
- write_or_die (1 , rpc . result . buf , rpc . result .len );
1114
- strbuf_release (& rpc . result );
1112
+ err = rpc_service (& rpc , heads , args .argv , & preamble , & rpc_result );
1113
+ if (rpc_result .len )
1114
+ write_or_die (1 , rpc_result . buf , rpc_result .len );
1115
+ strbuf_release (& rpc_result );
1115
1116
strbuf_release (& preamble );
1116
1117
argv_array_clear (& args );
1117
1118
return err ;
0 commit comments