@@ -1075,7 +1075,7 @@ int git_reference__update_terminal(
10751075 const git_signature * sig ,
10761076 const char * log_message )
10771077{
1078- git_reference * ref = NULL ;
1078+ git_reference * ref = NULL , * ref2 = NULL ;
10791079 git_signature * who = NULL ;
10801080 const git_signature * to_use ;
10811081 int error = 0 ;
@@ -1090,18 +1090,20 @@ int git_reference__update_terminal(
10901090 if (error == GIT_ENOTFOUND && ref ) {
10911091 assert (git_reference_type (ref ) == GIT_REF_SYMBOLIC );
10921092 giterr_clear ();
1093- error = reference__create (& ref , repo , ref -> target .symbolic , oid , NULL , 0 , to_use ,
1093+ error = reference__create (& ref2 , repo , ref -> target .symbolic , oid , NULL , 0 , to_use ,
10941094 log_message , NULL , NULL );
10951095 } else if (error == GIT_ENOTFOUND ) {
10961096 giterr_clear ();
1097- error = reference__create (& ref , repo , ref_name , oid , NULL , 0 , to_use ,
1097+ error = reference__create (& ref2 , repo , ref_name , oid , NULL , 0 , to_use ,
10981098 log_message , NULL , NULL );
10991099 } else if (error == 0 ) {
11001100 assert (git_reference_type (ref ) == GIT_REF_OID );
1101- error = reference__create (& ref , repo , ref -> name , oid , NULL , 1 , to_use ,
1101+ error = reference__create (& ref2 , repo , ref -> name , oid , NULL , 1 , to_use ,
11021102 log_message , & ref -> target .oid , NULL );
11031103 }
11041104
1105+ git_reference_free (ref2 );
1106+ git_reference_free (ref );
11051107 git_signature_free (who );
11061108 return error ;
11071109}
0 commit comments